2013-01-08 72 views
0

我有一個用戶註冊表單,我試圖限制爲具有特定訪問代碼的用戶創建帳戶的能力。我遇到了能夠驗證該特定代碼的問題。我已經包含了能夠拼湊在一起的代碼,但不適合我。Rails爲特定值自定義驗證

#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

您的驗證意圖是什麼規則? – wless1

+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