Я хочу проверить данные перед сохранением в моем приложении rails.
Если данные не соответствуют критериям проверки, их нельзя сохранить, и пользователь не был предупрежден.
На самом деле у меня есть это в соответствующем файле модели:
class Product < ActiveRecord::Base
belongs_to :content
before_validation :strip_whitespace
private
def strip_whitespace
self.label = self.label.strip
self.price = self.price.strip
end
end
Я пробовал что-то подобное в моей другой модели:
class Content < ActiveRecord::Base
belongs_to :user
has_many :products, :dependent => :destroy
accepts_nested_attributes_for :products, :reject_if => :all_blank
end
[EDIT]
Я наконец изменил эту строку на:
class Content < ActiveRecord::Base
belongs_to :user
has_many :products, :dependent => :destroy
accepts_nested_attributes_for :products, :reject_if => proc {|attributes|
attributes['label'].blank?
attributes['price'].blank?
attributes['img_src'].blank?
attributes['link'].blank?
}
end
И это работает!
Но есть другое решение для перечисления атрибутов с blank? condition?