我正在制作自己的自定义视图,我需要让用户创建相关模型的过程更加轻松。我想将所有关联模型的部件内联显示,并提供编辑它们的控件。对于基本字段,自己编写相应功能非常容易,但我更愿意使用form_filtering_select
局部模板来处理内联模型的关联,但是我找不到任何相关的文档。
我正在制作自己的自定义视图,我需要让用户创建相关模型的过程更加轻松。我想将所有关联模型的部件内联显示,并提供编辑它们的控件。对于基本字段,自己编写相应功能非常容易,但我更愿意使用form_filtering_select
局部模板来处理内联模型的关联,但是我找不到任何相关的文档。
class User
def projects
[@project1, @project2]
end
def projects_attributes=(attributes)
# Process the attributes hash
end
end
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 %>
有一个很酷的宝石可以实现你想要的功能。它叫做 Nested Form Fields。它允许你在单个页面上编辑记录(以及它们的 has_many 关联)。它的酷之处在于,它甚至使用 jQuery 动态添加/删除表单字段而无需重新加载页面。查看宝石的文档docs以获得正确的用法。希望这有所帮助!