如何在rails中动态配置验证? 例如,如果我有Rails动态验证
validates_length_of :name, within => dynamic
变量“动态”将由用户设定。保存时,验证应使用变量“dynamic”的值来配置内部配置。
如何在rails中动态配置验证? 例如,如果我有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这样的动态变量:validates_presence_of:name,:locales => dynamic_array(:locales可以是[:en,:de,...] dynamic)。配置:locales by validates_presence_of附带i18n_multi_locales_validations插件。 – phlegx 2009-08-03 17:08:10
你应该看看[用procs定义动态验证](http://stackoverflow.com/a/9961015/1287376)。 – 2016-06-03 20:31:36