Rails管理员以has_many嵌套形式隐藏belongs_to字段

时间:2013-10-09 12:26:44

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

我有两个模型

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中我得到了以下选项。

添加新的联系表单

enter image description here


添加新的实体表单

enter image description here

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

任何帮助都会有用。

2 个答案:

答案 0 :(得分:10)

您可以使用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

让我知道它是怎么回事

答案 1 :(得分:5)

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

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

  rails_admin do
    nested do
      configure :entity do
        hide
      end
    end
  end

end

访问the official wiki了解详情