Привет переполнения стека,
Я уже некоторое время использую accepts_nested_attributes_for со встроенными моделями. Для массового присваивания и самоцвета вложенных форм Райанба это практически необходимо. Обычно он используется таким образом с лямбда-функцией для проверки хэша параметров, чтобы массовое присваивание не завершалось ошибками валидации (хотя они все еще действительны), если пользователь не размещает никаких входных данных.
class User
include Mongoid::Document
embeds_many :comments
accepts_nested_attributes_for :comments, :reject_if => lambda { |c| c[:comment].blank? }
end
class Comment
include Mongoid::Document
embeds_in :user
fields :comment
validates_presence_of :comment
end
Я предполагаю, что с: reject_if это удаляет пробелы в параметрах перед проверкой. Что я хочу сделать, так это оценить уникальность с помощью validates_uniqueness_of и лямбда-блока.
Я мог бы перебирать комментарии (self.comments), но я предполагаю, что есть лучший способ сделать это. Я знаю, что это также приведет к тому, что ошибки проверки уникальности будут молча терпеть неудачу, но мне просто интересно, как это можно сделать.
Есть мысли?