我有一个用户注册表单,我试图限制为具有特定访问代码的用户创建帐户的能力。我遇到了能够验证特定代码的问题。我已经包含了我能够拼凑的代码,但不适合我。
#new.html.erb
<%= f.text_field :access, placeholder: "Access Code", required: "required" %>
#user.rb
validate :check_code
def check_code
errors.add(:base, 'Try another code') unless User.where(:access == "theAccessCode")
end
有人可以建议替代此验证吗?
答案 0 :(得分:0)
如果有一个正确的访问代码,我想你想要这样的东西:
ACCESS_CODE = 'secretCode'
def check_code
errors.add(:base, 'Try another code') unless self.access == ACCESS_CODE
end
或者,您的代码可能需要看起来像这样(虽然查询现有用户似乎仍然是错误的):
def check_code
errors.add(:base, 'Try another code') unless User.where(:access => "theAccessCode").exists?
end