我正在使用Mongoid和嵌入式文档。我使用标准方法来使用_destroy
的隐藏表单字段,其值为1
。这工作正常,除了运行验证程序,其中包括我试图删除的关联。例如:
class Thing
include Mongoid::Document
embeds_many :actions
validate :uniqueness_of_actions
def uniqueness_of_actions
subjects = actions.map(&:subject)
subjects_are_unique = subjects == subjects.uniq
errors.add(:actions, 'must have unique subjects') unless subjects_are_unique
subjects_are_unique
end
end
在运行验证之前删除/排除标记为销毁的关联的正确方法是什么?可能包括它们?
答案 0 :(得分:1)
尝试这些方法。
class Artist < AR::Base
has_many :songs
validate :custom_thing
def custom_thing
songs.reject{ |x| x._destroy}.each do |a|
# magic here
end
end
end