在表单中处理多个关联模型的最佳方法?

时间:2013-01-08 04:36:33

标签: ruby-on-rails-3 forms models model-associations

我有一个相当简单的设置:

模型/ person.rb

has_many :links

模型/ link_category.rb

attr_accessible :title
has_many :links

模型/ links.rb

attr_accessible :person_id, :link_category_id, :url
belongs_to :person
belongs_to :link_category

链接类别的示例可能是“facebook,twitter,pinterest,wordpress,blog等”。

我想创建的内容,尽可能是DRY和RESTful,是一个列出所有链接类别的单个页面,以及一个文本字段,供他们输入(或更新已提供的)每个类别的网址。

例如,像http://example.com/person/23/links/edit这样的内容可能会显示如下形式:

Facebook: _ __ _ __ _ __ _ __ _ __ _ __ _ _

Twitter:__ http://twitter.com/example _ _

Wordpress: _ __ _ __ _ __ _ __ _ __ _ __ _

Pinterest: _ __ _ __ _ __ _ __ _ __ _ __ _

我想知道是否有人有这样做的优雅方式,因为它在许多网站中变得非常普遍。

1 个答案:

答案 0 :(得分:0)

我认为你要求的东西与我曾经要求的东西非常相似:

Rails: How do I prepend or insert an association with build?

您可以在控制器中调用类似的函数,也可以调用:after_initialize

要利用它,您需要将has_many :link_categories, through: :links添加到Person模型中。