2010-06-01 131 views
7

我有一個對象上的表單中使用這種簡單的活動記錄驗證:刪除域名

form.error_messages({:message => '', :header_message => ''}) 

這反過來輸出類似「字段名我的自定義信息」

我需要做的是從錯誤消息中刪除字段名稱,但留下我的自定義消息。

任何人都可以爲我指出正確的方向。

回答

9

一種方式有過郵件的完全控制是在模型中使用自定義validate塊。例如檢查一個字段不爲空,將是這樣的:

class MyModel < ActiveRecord::Base 
    validate do |model| 
    model.errors.add_to_base("My Custom message") if user.field.blank? 
    end 
end 

add_to_base旨在用於添加不相關的一個特定的單獨的場(例如,如果多個字段的組合是非法的)消息。這意味着突出顯示無效字段的CSS將不會被添加。您也可以通過向您的字段的錯誤添加一條零消息來完成此工作,例如

model.errors.add(:field, nil) 

另外,檢查出custom-err-message插件 - 該插件可讓您不必與屬性名稱前綴您的自定義驗證錯誤消息的選項。

更新:因爲Rails的3

add_to_base是不建議使用以下可以用來代替: model_instance.errors.add(:base, "Msg")
編號:https://apidock.com/rails/ActiveRecord/Errors/add_to_base

+0

歡呼mikej,自定義err-message插件做了我想要的 – pythonandchips 2010-06-02 10:26:46

+0

還有一個[gem](https://github.com/thethanghn/custom-err-msg)在Rails 4中爲我工作。 – dusan 2014-07-17 15:13:43

0

您可以訪問對象的errors例如直接,如果你需要完全控制關於消息如何呈現。

7

在Rails 3.2.6,你可以在一個區域文件(例如,配置/區域設置/ en.yml)設置此:

en: 
    errors: 
    format: "%{message}" 

否則,默認格式爲「%{}屬性{%信息}」。

+1

這也適用於4.0.2。 – Deborah 2013-12-08 04:04:06

+0

仍在4.1.1上工作 – 2014-08-08 18:21:28