我有一個對象上的表單中使用這種簡單的活動記錄驗證:刪除域名
form.error_messages({:message => '', :header_message => ''})
這反過來輸出類似「字段名我的自定義信息」
我需要做的是從錯誤消息中刪除字段名稱,但留下我的自定義消息。
任何人都可以爲我指出正確的方向。
我有一個對象上的表單中使用這種簡單的活動記錄驗證:刪除域名
form.error_messages({:message => '', :header_message => ''})
這反過來輸出類似「字段名我的自定義信息」
我需要做的是從錯誤消息中刪除字段名稱,但留下我的自定義消息。
任何人都可以爲我指出正確的方向。
一種方式有過郵件的完全控制是在模型中使用自定義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
您可以使用errors.add_to_base http://api.rubyonrails.org/classes/ActiveRecord/Errors.html#M001712
您可以訪問對象的errors例如直接,如果你需要完全控制關於消息如何呈現。
在Rails 3.2.6,你可以在一個區域文件(例如,配置/區域設置/ en.yml)設置此:
en:
errors:
format: "%{message}"
否則,默認格式爲「%{}屬性{%信息}」。
這也適用於4.0.2。 – Deborah 2013-12-08 04:04:06
仍在4.1.1上工作 – 2014-08-08 18:21:28
歡呼mikej,自定義err-message插件做了我想要的 – pythonandchips 2010-06-02 10:26:46
還有一個[gem](https://github.com/thethanghn/custom-err-msg)在Rails 4中爲我工作。 – dusan 2014-07-17 15:13:43