Rails 3针对数据库条目的自定义验证

时间:2011-09-14 17:52:51

标签: ruby-on-rails-3 validation

我目前有一个网站,允许每个用户注册,但我想提供代码,以便只有具有特殊代码的用户才能注册。我已经使用了验证,但我真的需要你的帮助。

首先,我的表单允许用户注册以及用户可以输入代码的位置。 然后我有用户模型,它应该包含验证检查:

validates :registration_codes, :presence => true, ??? => ???

我可以以任何形式获取我的reg_codes,因为我还没有创建它们。也许我会手动和硬编码更新它们,或者我会制作一个模型。我不知道。所以,我只需要验证检查,它应该做这样的事情:

:registration_code should be code1 or code2 or code3

我甚至试图制作一个自定义方法,但我没有找到如何将表单输入转发给我的方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我写了一个自定义方法,我称之为:

validate   :validate_regcode

然后我只是在数据库中搜索代码并检查结果是否为空:

def validate_regcode
  regcode_feed = Code.where("regcode = ?", regcode)
  if regcode_feed.empty?
    errors.add(:regcode, "Ihr Registrierungscode ist leider ungültig.")
  end
end

所以,如果你知道如何做到这一点,那真的很简单。也许有更简单的东西,但我喜欢我的方式:)