【发布时间】:2014-07-10 20:24:27
【问题描述】:
ActiveRecord 的validates_each 方法支持多个属性:
validates_each :foo, :bar, :baz do |record, attr, value|
# logic here
end
有没有办法通过 ActiveRecord 回调来做到这一点?
before_validation [:foo, :bar, :baz] :do_something
...
protected
def do_something(*args)
args.each do |a|
# logic here
end
end
...
** 编辑 **
:foo、:bar、:baz 是 URL。我想在应用验证之前对它们进行“规范化”(如果缺少,请在开头添加“http://”)。
【问题讨论】:
-
您要访问哪些参数?
self.name应该返回新名称或旧名称;self.changes[:name].try(:first)应该返回新名称,如果它被更改,self.changes[:name].try(:last)将返回旧名称如果改变
标签: ruby-on-rails ruby-on-rails-4 rails-activerecord