Ruby on rails Rails 4.1.0:未定义的方法'setup';对于#<;ActiveRecord::Validations::UniquenessValidator
将Rails应用程序从4.0.0更新到4.1.0(Ruby 2.3.1)时,我遇到以下错误: 在升级到Rails 4.2时,这个错误似乎是已知的。在Rails4.1中,setup方法应该被弃用,因此我现在真的很困惑。 按照第一个答案的注释中的建议,尝试用“初始化”替换“设置”是无效的(因为我使用的是Rails 4.1) 通过在Rails 4.0.0和Rails 4.1.0之间进行升级和降级,我可以可靠地再现错误 感谢您的帮助 如前所述,您可以通过在初始化验证器实例时将类作为参数传递来实现这一点Ruby on rails Rails 4.1.0:未定义的方法'setup';对于#<;ActiveRecord::Validations::UniquenessValidator,ruby-on-rails,validation,activerecord,installation,unique,Ruby On Rails,Validation,Activerecord,Installation,Unique,将Rails应用程序从4.0.0更新到4.1.0(Ruby 2.3.1)时,我遇到以下错误: 在升级到Rails 4.2时,这个错误似乎是已知的。在Rails4.1中,setup方法应该被弃用,因此我现在真的很困惑。 按照第一个答案的注释中的建议,尝试用“初始化”替换“设置”是无效的(因为我使用的是Rails 4.1) 通过在Rails 4.0.0和Rails 4.1.0之间进行升级和降级,我可以可靠地再现错误 感谢您的帮助 如前所述,您可以通过在初始化验证器实例时将类作为参数传递来实现这一点
validator = ActiveRecord::Validations::UniquenessValidator.new({attributes: column, scope: scope, class: self.class})
validator.validate(self)
工作起来很有魅力!
validator = ActiveRecord::Validations::UniquenessValidator.new({attributes: column, scope: scope})
validator.setup(self.class)
validator.validate(self)
validator = ActiveRecord::Validations::UniquenessValidator.new({attributes: column, scope: scope, class: self.class})
validator.validate(self)