只允许在ActiveAdmin中创建has_many

时间:2015-07-14 08:29:17

标签: ruby-on-rails ruby activeadmin

我有一个has_many关系,我禁用了它:

unless f.object.new_record?
  f.inputs do
    f.has_many :foos, allow_destroy: false do |foo|
      foo.input :bar
    end
  end
end

目前,一旦我保存了主要对象并返回并编辑,我就可以编辑之前创建的foo。我不希望这样,只能添加新的。我怎样才能做到这一点?

我可以看到ActiveAdmin提供allow_destroynew_record,但没有类似于allow_edit的内容。

1 个答案:

答案 0 :(得分:0)

原来答案是盯着我的脸:new_record?。只需检查has_many项是否为新记录:

f.inputs do
  f.has_many :foos, allow_destroy: false do |foo|
    if foo.object.new_record?
      foo.input :bar
    end
  end
end