2011-04-18 35 views
-1

我是rails新手,我正在寻找一个简单的页面,允许用户列出他们的计算机技能。Ruby on Rails - 表单数据的多个值

我需要通过点击“添加其他技能”来动态创建字段。我发现了一些可以做到这一点的JS,但是我很难在Rails中将多个字段存储在单个数据库条目中。

任何想法?

-

例如:

技能

-MS办公室

-Mac OS X

-AutoCad

-StackOverflow

添加另一个技能

回答

1

你最好的选择是在一个新的表添加一个条目,每个技能,而不是一个单一的数据库条目。

步骤参与这样的:

  1. 您将有一个名为“技能”表中,将有文本的主ID和文本字段。
  2. 将您的'用户'对象加入has_many :skills
  3. 在表格中,每个添加的项目都会有这样的名称:user[skills][]。这会在发布到服务器时添加创建技能对象。

如果您需要保留一个数据库条目,您可以让YAML序列化和反序列化一系列技能(未测试太多)。

require 'yaml' 

def update 

    user.skills = ["MS Office", "Mac OS X"].to_yaml 

end 

而且在模板:

<% YAML::load(user.skills).each do |s| %> 
    <%= s %> 
<% end %>