Ruby on Rails:接受父级而不是子级记录的嵌套属性?

时间:2012-10-05 15:38:29

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

在我的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}}

但它不起作用,因为组织不是人的孩子。

还有另一种方法可以实现这个目标吗?

感谢您的帮助。

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 链接查看是否有效。