【发布时间】:2012-06-27 08:04:35
【问题描述】:
我有一个User 和Setting。 Setting 有一个名为 :serializable 的字段 :custom_links:
在Setting.rb
serialize :custom_links, Hash
在User.rb
has_one :setting, dependent: :destroy
我想创建一个表单,允许用户设置任意数量的自定义链接,并将这些链接存储在 :custom_links 哈希中。每个自定义链接在哈希中都有一个名称和一个 URL。
我不确定如何在视图中构建此表单并允许用户使用 javascript 动态添加任意数量的自定义链接(并将这些链接保存在 :custom_links 哈希中)。我在:setting 中还有其他字段,并且我的控制器可以很好地处理这些字段 - 我认为我唯一需要帮助的是视图和 javascript。
更新说明:
当用户填写表单以输入:custom_links 时,我希望它采用以下格式:
{
:name => "Google", :url => "http://www.google.com",
:name => "Twitter", :url => "http://www.twitter.com"
}
另外,我希望能够为用户想要输入的每个 :custom_link 动态添加 2 个文本字段。
感谢所有帮助。
谢谢
【问题讨论】:
-
使用序列化属性是硬性要求吗?您可以添加
has_many :custom_links关联并使用嵌套属性将它们嵌套在主设置表单下。对它们进行序列化与 Rails 提供的内容背道而驰,从长远来看通常会导致更多的痛苦。另外,我认为您想要一个序列化的数组而不是哈希(对吗?)。您在更新中添加的哈希没有任何意义,因为它有重复的键。 -
我想我可以,但我只是不想过度使用模型。不确定在这种情况下什么是正确的,但我认为序列化对象会更好。此外,格式(哈希或数组)对我来说也并不重要。
-
序列化它们没有什么问题,但由于它是一个集合(不是散列),所以使用 Rails 提供的东西是有意义的。请参阅下面的答案。
标签: ruby-on-rails ruby-on-rails-3 serialization