使用文件进行自定义验证

时间:2010-06-25 02:03:00

标签: ruby-on-rails validation yaml

我有一个用户注册表单,其中包含注册码字段(:reg_code)。我有一个有效的注册码列表(在yml文件中,但如果这样做更容易,则不必如此)。我需要检查用户是否输入了reg代码字段中的有效代码。我是一个rails / ruby​​新手并且没有CLUE如何加载&解析文件以检查注册码。

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

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

我在'if reg code'部分之后没有任何线索。

1 个答案:

答案 0 :(得分:0)

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

  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文件来帮助你。