我想要在创建期间和更新操作期间使用不同的 reject_ifs。
我在这里有附件模型的嵌套属性
has_many :attachments
accepts_nested_attributes_for :attachments, :allow_destroy => true, :reject_if => proc { |attributes| attributes['attachment_description'].blank? }
我想要一个:reject_if
用于创建操作的特定选项和另一个用于更新操作的特定选项...
例如:
在更新...
如果 description 为空白或 nil 则拒绝:
:reject_if => proc { |attributes| attributes['attachment_description'].blank? }
On Create... 如果文件名为空或 nil,则拒绝:
:reject_if => proc { |attributes| attributes['attachment_file_name'].blank? }
我也不确定如何实施:on=> :update
和阻止:on=> :create
accepts_nested_attributes_for
任何解决方法将不胜感激。谢谢。
编辑:
试图以这种方式使用它,但没有运气。
has_many :attachments, dependent: :destroy
accepts_nested_attributes_for :attachments, :allow_destroy => true, :reject_if => proc { |attributes| attributes['attachment'].blank? }, on: :create
accepts_nested_attributes_for :attachments, :allow_destroy => true, on: :update
它说...
undefined method `key?' for nil:NilClass