Ruby on rails 使用文件进行自定义验证

Ruby on rails 使用文件进行自定义验证,ruby-on-rails,validation,yaml,Ruby On Rails,Validation,Yaml,我有一个带有注册码字段的用户注册表:注册码。我在一个yml文件中有一个有效注册码列表,但如果这让事情变得更容易的话,我不必这样做。我需要检查用户在“注册码”字段中输入的代码是否有效。我是rails/ruby新手,不知道如何加载和解析文件以检查注册码 我的班级:重要的部分,无论如何 class Foo < ActiveRecord::Base ...more class goodness here... before_create :validate_reg_code def

我有一个带有注册码字段的用户注册表:注册码。我在一个yml文件中有一个有效注册码列表,但如果这让事情变得更容易的话,我不必这样做。我需要检查用户在“注册码”字段中输入的代码是否有效。我是rails/ruby新手,不知道如何加载和解析文件以检查注册码

我的班级:重要的部分,无论如何

class Foo < ActiveRecord::Base
  ...more class goodness here...
  before_create :validate_reg_code

  def validate_reg_code
    errors.add(:reg_code, "Sorry, this registration code is invalid.") if reg_code
  end

end

“如果注册码”部分之后我没有任何线索。

我个人将注册码加载到数据库中。创建注册码模型,然后:

  def validate_reg_code
    unless RegistrationCode.find_by_code(self.reg_code)
      errors.add(:reg_code, "Sorry, this registration code is invalid.") 
    end
  end
如果您想解析Yaml,可以通过Yaml::Load命令在rails中解析

YAML::load(File.open("#{RAILS_ROOT}/config/registration_codes.yml"))

这将把yaml文件加载到散列中。我需要修改yaml文件的结构以进一步帮助您。

太好了!工作起来很有魅力。非常感谢。