8
私は非常に一般的なバリデータを持っており、引数を渡したいと思います。ここで引数をEachValidatorに渡すRails/ActiveModel
は例のモデルである:
class User
include Mongoid::Document
field :order_type
has_many :orders, inverse_of :user
validates: orders, generic: true #i want to pass argument (order_type)
field :task_type
has_many :tasks, inverse_of :user
validates: tasks, generic: true #i want to pass argument (task_type)
end
と例のバリデータ:
class GenericValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
if some_validation?(object)
object.errors[attribute] << (options[:message] || "is not formatted properly")
end
end
end
は、それが検証を行っている依存どのフィールドにバリに引数を渡す方法はありますか?
おかげ
あなたがこれを行うことによって達成するために何をしようとしていますか?これは、Rails APIを使用した場合、これを行うための最良の方法として私を襲ってきません。 – dpassage
私のオリジナルコードでは、私のモデルに周期的な依存性があるかどうかを調べたいと思います。モデルAには多くのモデルBがあります。モデルBには1つのモデルAがあります。モデルAからそれまでのサイクルがないことを検証したいと思います。事は、サイクルを検証する必要がある2つの異なる関係があり、それらの間のバリデーターにはごくわずかな違いがあるということです。同じサイクルロジックとバリデーターを書き換えるのではなく、どのフィールドをサイクルを検索するために一般的に渡すことができるかどうかを見たいと思っていました。 – GTDev
私は、パラメータ化ではなくサブクラス化を使うほうが良いかもしれないと思います。 – dpassage