2015-10-26 71 views

回答

0

的語法已更改爲:

validates :some_field, :presence => true 

參考:Link

+0

這並不回答問題 –

+0

@SergioTulentsev我剛剛面對同樣的問題,當我移植到Rails 3時,認爲'validate_presence_of'已被棄用,但後來遇到了這個解決方案。所以,我發佈了。 – Abhi

-1

的方法仍然存在,但由於導軌3中,在一個稍微不同的命名空間比以前所定義。

的Rails 3之前:

ActiveModel::Validations::ClassMethods#validates_presence_of 

由於導軌3:

ActiveRecord::Validations::ClassMethods#validates_presence_of 
ActiveModel::Validations::HelperMethods#validates_presence_of 

我不得不看起來非常近距離地看到差異。

結論:只要繼續使用validates_presence_of

0

這是一個軟貶低。兩種語法仍然存在,但validates是更新和'首選'。

+1

你能解釋爲什麼它是更新和'首選'? – zwippie

+0

好吧,它更新,因爲它是在其他語法之後引入的。這可能是首選,因爲它允許您將驗證組合到一個調用中 - 而不是'validates_presence_of:foo,validates_inclusion_of:foo,validates_length_of:foo'等。您可以只驗證:foo,presence:true,inclusion:{in :[whatever]},長度:{maximum:3}'... – sevenseacat

相關問題