Say*_*yuj 4 ruby validation ruby-on-rails
class A
include ActiveModel::Validations
attr_reader :operator
def initialize(operator)
@operator = operator
validates_inclusion_of :operator, in => operators
end
def operators
....
end
end
Run Code Online (Sandbox Code Playgroud)
在这里,我想动态验证运算符的clusion_of。方法操作符返回动态的操作符数组。
上面的代码不起作用。如何动态实现验证?r
您可以尝试:
def initialize(operator)
self.class.class_eval do
validates_inclusion_of :operator, :in => operators
end
end
Run Code Online (Sandbox Code Playgroud)
虽然我不明白为什么你不能在班级级别定义它。请注意, :in 的参数可以是 lambda,有关详细信息,请参阅:http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of