在rails中使用嵌套表单进行Woking
我有3个型号
公司
has_many:部门
部门
has_many:角色
belongs_to公司
角色
belongs_to:department
我正在尝试创建一个动态页面,其中包含公司名称,用户动态添加的n个部门( 按照按钮单击呈现相同的部分 )和每个部门内的n个角色( 按照按钮单击呈现相同的部分 )。 我想打个电话
form_for :company do |f|
= department_partial(按用户呈现n次),包含部门表单
form_for :department do |f|
= role_partial(按用户呈现n次),包含角色表单
form_for :role do |f|
这样当我点击保存一次以调用CompaniesController #Create时
我得到了类似的参数
{“company”=> {“name”=>“somename”,
“department1”=> {“name”=>“somename”,“role”=> [{“name”=>“R1”},{“name”=>“R2”}]},
“department2”=> {“name”=>“somename”,“role”=> [{“name”=>“R1”},{“name”=>“R2”},{“name”=>“ R3″ }]}}
注意
1>每个部门可能会重复相同的角色,但不同的部门是明智的。
2>单击“保存”之前没有保存任何内容
请检查nested_form gem
可能你的视图看起来像这样:
<%= nested_form_for @company do |comp| %> <%= comp.fields_for :departments do |department| %> <%= department.text_field :name %> <%= department.fields_for :roles do |role| %> <% end %> <% end %> <% end %>
看一下这个示例代码 。 这将有助于你:)检查以下railscastvideo:
http://railscasts.com/episodes/196-nested-model-form-part-1
和