【问题标题】:Rails admin hide belongs_to field in has_many nested formRails 管理员以 has_many 嵌套形式隐藏 belongs_to 字段
【发布时间】:2013-10-09 12:26:43
【问题描述】:

我有两个模型

class Entity < ActiveRecord::Base
  # Associations
  has_many :contacts
  accepts_nested_attributes_for :contacts, :allow_destroy => true
end

class Contact < ActiveRecord::Base
  # Associations
  belongs_to :entity
end

现在在 rails admin 我得到以下选项。

添加新的联系表


添加新的实体表单

我需要在联系表单中隐藏实体字段,同时添加新实体。

任何帮助都会很有用。

【问题讨论】:

  • 您解决了这个问题了吗?我不明白你的问题。因此用户导航到“新联系人”表单,然后单击“添加新实体”,它会出现在“新联系人”表单上方。那一刻你想隐藏下面的“添加新实体”按钮吗?
  • 不,基本上我正在尝试添加新实体。由于实体有很多联系人,Rails 管理员生成嵌套表单以添加联系人,同时添加实体本身。但是当我点击在实体添加表单中添加新联系人时,它要求我选择实体,这意味着更少,因为我正在向尚未创建的实体添加联系人。知道了?否则我可以解释更多。
  • 所以当您创建一个带有嵌套 new_contact 表单的新实体表单时,它会显示一个选择框来选择实体?如果我的理解是正确的,您可能可以将其隐藏在视图中。请分享表单的代码。
  • @8bithero :我知道我可以将其隐藏在表单中。但是我也可以通过联系人添加表单直接添加联系人的问题。我认为唯一的选择是编写自定义视图来添加联系人。
  • 是的,据我了解,我认为您需要编写自定义视图来微调您的要求。

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 rails-admin


【解决方案1】:

您可以像这样使用 inverse_of 自动隐藏字段

class Entity < ActiveRecord::Base
  # Associations
  has_many :contacts, inverse_of: :entity
  accepts_nested_attributes_for :contacts, allow_destroy: true
end

class Contact < ActiveRecord::Base
  # Associations
  belongs_to :entity, inverse_of: :contacts
end

如果您在关系上设置 :inverse_of 选项,RailsAdmin 将 在模态创建中自动填充反比关系 窗户。 (链接在 :belongs_to 和 :has_many 多选小部件旁边)

来源:https://github.com/sferik/rails_admin/wiki/Associations-basics

告诉我进展如何

【讨论】:

    【解决方案2】:

    为了完整起见,因为我也遇到了这个问题并解决了它,如果您愿意,您可以在嵌套表单中使用模型时配置模型,就像您在编辑、更新、创建和嵌套时所做的那样

    class Contact < ActiveRecord::Base
      # Associations
      belongs_to :entity
    
      rails_admin do
        nested do
          configure :entity do
            hide
          end
        end
      end
    
    end
    

    访问the official wiki了解更多信息

    【讨论】:

    • 如果您不想在嵌套表单中显示所有字段,这是正确的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 2011-12-20
    相关资源
    最近更新 更多