Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4.1.0:未定义的方法'setup';对于#<;ActiveRecord::Validations::UniquenessValidator_Ruby On Rails_Validation_Activerecord_Installation_Unique - Fatal编程技术网

Ruby on rails Rails 4.1.0:未定义的方法'setup';对于#<;ActiveRecord::Validations::UniquenessValidator

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之间进行升级和降级,我可以可靠地再现错误 感谢您的帮助 如前所述,您可以通过在初始化验证器实例时将类作为参数传递来实现这一点

将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)