2012-10-29 95 views
0

我的最後一個問題https://stackoverflow.com/questions/13112897/rails-begginer-validations因過於本地化而關閉,所以我會嘗試更通用。rails驗證 - 將值傳遞給選項

是否有可能從當前記錄(或從會話)傳遞值到驗證選項?

這工作:

validates :name, :length => { :minimum => 2 } 

但是,如果我在我的模型場「使用MINLENGTH」,想驗證「名稱」的長度反對「MINLENGTH到」字段中的值 - 我該怎麼辦那?

這些示例不起作用。

validates :name, :length => { :minimum => self.minlength } 
validates :name, :length => { :minimum => :minlength } 
validates :name, :length => { :minimum => session_variable_with_minlength_value } 
+0

基本上同樣的問題:http://stackoverflow.com/questions/5354608/validate-length-字符串反對另一個屬性 –

+0

它有任何錯誤是爲了那個? –

+0

是真實的,但它不是解決問題的關鍵 - 我想知道是否有可能將值傳遞給一個選項...請檢查我以前問題的鏈接,看看爲什麼我需要這個... http://stackoverflow.com/questions/13112897/rails-begginer-validations – Goran

回答

0

你可以通過自定義驗證爲:

例如

validate:name_length 

def name_length 
    if self.name.size < self.minlength.to_i 
    errors[:base] << "whatever error message you want to display here" 
    end 
end 
+0

thnx爲你的答案 - 沒關係的解決方案,它解決了我的問題例如,但它不回答我的問題。我試圖將價值傳遞給一個選項,我想知道它是否可能... – Goran