如何在自定义视图中使用rails_admin表单?

16

我正在制作自己的自定义视图,我需要让用户创建相关模型的过程更加轻松。我想将所有关联模型的部件内联显示,并提供编辑它们的控件。对于基本字段,自己编写相应功能非常容易,但我更愿意使用form_filtering_select局部模板来处理内联模型的关联,但是我找不到任何相关的文档。

2个回答

1
您可以使用嵌套表单
考虑一个名为User的类,该类从projects读取器方法返回Project实例数组,并响应projects_attributes=写入器方法:
class User
  def projects
    [@project1, @project2]
  end

  def projects_attributes=(attributes)
    # Process the attributes hash
  end
end

请注意,projects_attributes=写入方法实际上是fields_for正确识别: projects作为集合并在表单标记中设置正确索引所必需的。
当projects已经是用户关联时,您可以使用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 %>

这里是有关详情的参考资料


你有这个示例中处理属性哈希的代码吗? - alex

0

有一个很酷的宝石可以实现你想要的功能。它叫做 Nested Form Fields。它允许你在单个页面上编辑记录(以及它们的 has_many 关联)。它的酷之处在于,它甚至使用 jQuery 动态添加/删除表单字段而无需重新加载页面。查看宝石的文档docs以获得正确的用法。希望这有所帮助!


如果你添加一个使用嵌套表单字段的示例,我会给你奖励。 - max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接