【问题标题】:Use rails_admin forms in custom views?在自定义视图中使用 rails_admin 表单?
【发布时间】:2012-08-28 13:57:36
【问题描述】:

我正在制作我自己的自定义视图,我需要使创建关联模型的过程对我的用户来说不那么痛苦。我想在线显示所有与模型相关的部分,并带有用于编辑它们的控件。对于基本字段,我自己很容易滚动,但我宁愿为内联模型的关联使用 form_filtering_select 部分,但我找不到任何文档来执行此操作。

【问题讨论】:

    标签: ruby-on-rails model-view-controller rails-admin


    【解决方案1】:

    您可以使用Nested Form

    考虑一个 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 上的关联时,您可以使用 accept_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 %>
    

    这里是Reference 了解详情。

    【讨论】:

    • 你有一个例子说明我会写什么来处理这个例子中的属性散列吗?
    【解决方案2】:

    那里有一个很酷的宝石,几乎可以满足您的需求。它被称为Nested Form Fields。它允许您在单个页面上编辑记录(连同它们的 has_many 关联)。它最酷的地方在于它甚至使用 jQuery 来动态添加/删除表单字段,而无需重新加载页面。查看 gems docs 以正确使用。希望对您有所帮助!

    【讨论】:

    • 如果您使用嵌套表单字段添加示例,我会给您奖励。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多