在我的Rails应用中Users
可以包含许多People
,而Organisations
又可以(但不一定)属于Users --< People >-- Organisations
。
简而言之,这是:
class Person < ActiveRecord::Base
attr_accessible :name, :organisation_attributes
belongs_to :user
belongs_to :organisation
accepts_nested_attributes_for :organisation
end
现在,能够以某种方式在人员视图中创建新组织会很棒。它尝试了这个:
{{1}}
但它不起作用,因为组织不是人的孩子。
还有另一种方法可以实现这个目标吗?
感谢您的帮助。
答案 0 :(得分:5)
我可以看到Person
实际上是Organisation
的孩子,并且也可以为父模型制作嵌套表单。而且您已经在使用accepts_nested_attributes_for
。
我假设您要为已保存的Organisation
显示person
表单。然后
在您的PeopleController#show
方法中构建组织
@person.build_organisation
并在people/show.html.erb
form_for(@person) do |f|
f.fields_for(:organisation) do |fo|
# show the fields of organisation here.
end
end
它应该有用。
<强>更新强>
我尝试了类似的东西并且它有效:)我已经做了一个包含片段的要点。 请点击 https://gist.github.com/3841507 链接查看是否有效。