ruby-on-rails - Rails 验证包含动态

标签 ruby-on-rails ruby validation

class A
  include ActiveModel::Validations
  attr_reader :operator
  def initialize(operator)
    @operator = operator
    validates_inclusion_of :operator, in => operators
  end

  def operators
    ....
  end
end

在这里,我想动态验证 inclusion_of 运算符。方法运算符返回一个动态的运算符数组。

以上代码无效。如何动态实现验证? r

最佳答案

你可以试试:

def initialize(operator)
  self.class.class_eval do
    validates_inclusion_of :operator, :in => operators
  end
end

虽然我不明白为什么你不能直接在类级别定义它。请注意,:in 的参数可以是 lambda,有关详细信息,请参阅:http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of

关于ruby-on-rails - Rails 验证包含动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972807/

相关文章:

validation - Rails 4,rspec 3 : model validation test

ruby-on-rails - Rails 在 ID NOT IN 条件下查找,如何支持映射的空值?

ruby-on-rails - 客户端服务架构 : keep client in sync with in-memory data sctructure

ruby-on-rails - 在 Rails 应用程序中同时使用 Redis 和 MongoDB

ruby - Ruby 脚本中的 Unicode 字符?

javascript - jQuery: 使用 `jquery-validation` 的远程验证后无法提交表单

ruby-on-rails - rails : Iterate over collection within a Model's Class Method

ruby-on-rails - 使用 Rails 设置 Cookie 并在第三方网站上使用

ruby-on-rails - Acts_as_taggable_on 迁移失败

XML 无效 DTD 错误