accepts_nested_attributes_for忽略空值

Mic*_*ael 12 ruby ignore ruby-on-rails nested-attributes

我有

class Profile
  has_many :favorite_books, :dependent => :destroy
  has_many :favorite_quotes, :dependent => :destroy

  accepts_nested_attributes_for :favorite_books, :allow_destroy => true
  accepts_nested_attributes_for :favorite_quotes, :allow_destroy => true
end
Run Code Online (Sandbox Code Playgroud)

我有一个动态表单,你按"+"添加新的textareas来创建新的收藏夹.我想要做的是忽略空白,我发现在更新控制器中比非嵌套属性更难排序.

我暂时拥有的是删除空记录的after_save回调中的黑客攻击.什么是最容易忽略这些空白对象的轨道方式?

我不想要验证和错误,只是一个无声的删除/忽略.

apn*_*ing 24

有一个内置的验证:

:reject_if => lambda { |c| c[:name].blank? },
Run Code Online (Sandbox Code Playgroud)

  • Rails 5有`reject_if :: all_blank`.我不知道最近是否在Rails 5中引入了它,或者它是否也适用于较旧的框架版本. (4认同)