レールで検証を動的に設定するにはどうすればよいですか?私はRails動的検証
validates_length_of :name, within => dynamic
を持っている場合たとえば、 は、変数「ダイナミック」は、ユーザによって設定されます。保存時に、バリデーションで変数 "dynamic"の値を使用して内部構成を構成する必要があります。
レールで検証を動的に設定するにはどうすればよいですか?私はRails動的検証
validates_length_of :name, within => dynamic
を持っている場合たとえば、 は、変数「ダイナミック」は、ユーザによって設定されます。保存時に、バリデーションで変数 "dynamic"の値を使用して内部構成を構成する必要があります。
私はvalidates_length_of
が動的パラメータをサポートしているとは思いません。カスタム検証で動作を複製する必要があります。
# in model
def validate
unless (5..10).member? name.length
errors.add :name, "must be within 5 to 10 characters"
end
end
これは静的範囲を使用しますが、独自のカスタム範囲変数を簡単に使用できます。
def validate
unless some_range.member? name.length
errors.add :name, "must be within #{some_range.first} to #{some_range.last} characters"
end
end
あなたは私のEveryday Active Record seriesで私Railscasts episode on conditional validationsエピソード3をチェックアウトすることができます。
あなたの答えをありがとう。私はvalidates_presence_ofにdynamic変数が必要です:validates_presence_of:name、:locales => dynamic_array(:ロケールは[:en、:de、...]動的になります)設定:validates_presence_ofのロケールには、i18n_multi_locales_validationsプラグインが付属しています。 – phlegx
[動的検証とprocsの定義](http://stackoverflow.com/a/9961015/1287376)を参照してください。 –