Ruby on Rails - 表单数据的多个值

时间:2011-04-18 00:15:22

标签: ruby-on-rails ruby ruby-on-rails-3

我是rails的新手,我正在制作一个简单的页面,允许用户列出他们的计算机技能。

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

有什么想法吗?

-

例如:

技能

-MS Office

-Mac OS X

-AutoCad

-StackOverflow

添加其他技能

1 个答案:

答案 0 :(得分:1)

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

涉及的步骤:

  1. 您将拥有一个名为“技能”的表格,其中包含文字的主要ID和文本字段。
  2. has_many :skills添加到“用户”对象中。
  3. 在表单中,每个添加的项目的名称类似于:user[skills][]。这将在发布到服务器时添加创建技能对象。
  4. 如果您需要保留单个数据库条目,您可以YAML序列化和反序列化一系列技能(未经过多次测试)。

    require 'yaml'
    
    def update
    
       user.skills = ["MS Office", "Mac OS X"].to_yaml
    
    end
    

    在模板中:

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