通常使用驗證回調,模型錯誤都用於導致t他預期的數據庫保存失敗併爲最終用戶設置上下文錯誤消息。 add_to_base變體用於一般的,非特定的錯誤條件(即,不與特定的模型屬性關聯)。
class MyModel < ActiveRecord::Base
validate do |my_model|
if my_model.some_attribute.blank? # For example
my_model.errors.add :my_model, "must be filled in"
end
end
end
隨後
@my_model = MyModel.create(:some_attribute => "")
將失敗,並且@ my_model.errors.full_messages陣列將包含
[ ..., "Some_attribute must be filled in", ... ]
然而,有用於上述示例的簡寫如下
class MyModel < ActiveRecord::Base
validates_presence_of :some_attribute, :msg => "must be filled in"
end
來源
2010-06-28 11:21:41
bjg
請包括更多的模型代碼。錯誤消息表明* self *指向類* Class *的一個實例,而不是您的模型類的一個實例。 – 2010-06-28 06:57:49
請張貼您的模型文件。 – Dex 2010-06-28 06:59:37