我正在制作自己的自定义视图,我需要使创建关联模型的过程对我的用户来说不那么痛苦。我想在线显示所有与模型相关的部分,并带有用于编辑它们的控件。对于基本字段,我自己很容易滚动,但我宁愿form_filtering_select
为内联模型的关联使用部分,但我找不到任何文档来做到这一点。
问问题
1546 次
2 回答
1
您可以使用嵌套表单
考虑一个 User 类,它从项目 reader 方法返回一个 Project 实例数组并响应 projects_attributes= writer 方法:
class User
def projects
[@project1, @project2]
end
def projects_attributes=(attributes)
# Process the attributes hash
end
end
请注意,fields_for 实际上需要 projects_attributes= writer 方法才能将 :projects 正确识别为集合,并在表单标记中设置正确的索引。
当 projects 已经是 User 的关联时,您可以使用 Accepts_nested_attributes_for 为您定义 writer 方法:
class User < ActiveRecord::Base
has_many :projects
accepts_nested_attributes_for :projects
end
此模型现在可以与嵌套的 fields_for 一起使用。对于集合中的每个实例,将重复给嵌套 fields_for 调用的块:
<%= nested_form_for @user do |user_form| %>
...
<%= user_form.fields_for :projects do |project_fields| %>
<% if project_fields.object.active? %>
Name: <%= project_fields.text_field :name %>
<% end %>
<% end %>
...
<% end %>
详情请参考参考。
于 2015-05-05T07:23:47.477 回答