5

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

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

有没有另一种方法来实现这一点?

谢谢你的帮助。

4

1 回答 1

6

我可以看到它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查看它的工作原理。

于 2012-10-05T16:02:06.117 回答