1

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

それらを含む可能性のある検証が実行される前に、破棄のマークが付けられた関連付けを削除/除外する適切な方法は何ですか?

4

1 に答える 1

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
于 2013-07-18T00:42:08.153 に答える