尋找一種方式來之前修改記錄:一個新紀錄的領域之一如何在紅寶石節約on Rails的
變化 - 在保存前(即迫使它爲小寫)到RoR分貝。 我試過了:
before_create do | term | term.myfield.downcase! 結束
但這給出了一個錯誤:
undefined method `before_create' for RowsController:Class
或
- 檢查該字段是所有小寫,如果沒有,引發錯誤消息,並且不會產生記錄。
嘗試:
before_filter :check_lowcase, :only => [:new]
def check_lowcase
if (Term.new =~ /[^a-z]+/)
flash[:notice] = "Sorry, must use lowercase"
redirect_to terms_path
end
end
這似乎只是被忽略....
謝謝!有用! 如果我想提出錯誤消息而不是糾正錯誤消息,該怎麼辦? – eran
只需添加:errors.add(:myfield,「必須小寫」)。雖然這應該真的進入驗證而不是before_create過濾器 – Yule
,我將如何把它放在驗證器中?有沒有一個接受自定義函數的驗證器? – eran