Ruby on rails RubyonRails中的类验证器

Ruby on rails RubyonRails中的类验证器,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在看铁路指南。我正在尝试创建一个类验证器,但在控制台中收到以下错误消息 未初始化的常量乘积::GoodnessValidator 模型产品.rb class Product < ActiveRecord::Base validates_with GoodnessValidator end 类产品

我正在看铁路指南。我正在尝试创建一个类验证器,但在控制台中收到以下错误消息

未初始化的常量乘积::GoodnessValidator

模型产品.rb

class Product < ActiveRecord::Base
   validates_with GoodnessValidator

end
类产品
我在应用程序中创建了一个名为validators的文件夹,然后创建了一个名为goods\u validator.rb的文件

class GoodnessValidator < ActiveModel::Validator
      def validate(record)
        if record.amount == 12
          record.errors[:base] << "The amount musn't be 12"
        end
      end
    end
class GoodnessValidatorrecord.errors[:base]Ruby是按顺序加载代码的,所以您应该将GoodnessValidator放在前面

class GoodnessValidator < ActiveModel::Validator
      def validate(record)
        if record.amount == 12
          record.errors[:base] << "The amount musn't be 12"
        end
      end
end

class Product < ActiveRecord::Base
   validates_with GoodnessValidator

end
class GoodnessValidatorrecord.errors[:base]Ruby是按顺序加载代码的,所以您应该将GoodnessValidator放在前面

class GoodnessValidator < ActiveModel::Validator
      def validate(record)
        if record.amount == 12
          record.errors[:base] << "The amount musn't be 12"
        end
      end
end

class Product < ActiveRecord::Base
   validates_with GoodnessValidator

end
class GoodnessValidatorrecord.errors[:base]Rails仅从
app
目录加载特定文件夹(默认文件夹)。如果您想添加一个新的子文件夹(如
验证器
),并且希望Rails从该文件夹加载文件,那么您必须通过将以下行添加到
config/application.rb
来配置该文件夹:

# in config/application.rb
config.autoload_paths += %W(#{config.root}/app/validators)

Rails仅从
app
目录加载特定文件夹(默认文件夹)。如果您想添加一个新的子文件夹(如
验证器
),并且希望Rails从该文件夹加载文件,那么您必须通过将以下行添加到
config/application.rb
来配置该文件夹:

# in config/application.rb
config.autoload_paths += %W(#{config.root}/app/validators)

尝试在
user.rb顶部添加以下行

require 'validators/goodness_validator' 

尝试在
user.rb顶部添加以下行

require 'validators/goodness_validator'