Rails动态表单 - 向表单添加可序列化字段

时间:2012-06-26 02:19:48

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

我有UserSettingSetting有一个名为:serializable的{​​{1}}字段:

:custom_links

Setting.rb

serialize :custom_links, Hash

User.rb

我想创建一个表单,允许用户设置任意数量的自定义链接,并将其存储在has_one :setting, dependent: :destroy 哈希中。每个自定义链接在哈希中都有一个名称和一个URL。

我不确定如何在视图中构建此表单,并允许用户使用javascript动态添加任意数量的自定义链接(并将其保存在:custom_links哈希)。我在:custom_links中有其他字段,我的控制器可以正常使用这些字段 - 我认为唯一需要帮助的是视图和javascript。

更新澄清:

当用户填写表单以输入:setting时,我希望它采用以下格式:

:custom_links

此外,我希望能够为用户想要输入的每个{ :name => "Google", :url => "http://www.google.com", :name => "Twitter", :url => "http://www.twitter.com" } 动态添加2个文本字段。

感谢任何和所有帮助。

由于

1 个答案:

答案 0 :(得分:1)

我建议将这些链接添加为单独的模型(例如has_many :custom_links)。另外,您将能够使用AR的验证,而不是为序列化属性制作自己的自定义验证方法。

您可以对这些字段使用nested attributes。看看下面的railscasts剧集:

第二个还向您展示了如何使用javascript动态添加更多字段。