我正在使用simple_form gem。我想自定義用戶驗證失敗時顯示的錯誤消息。我怎樣才能做到這一點?使用simple_form自定義錯誤消息
回答
您可以輕鬆地更改翻譯文件中的默認錯誤消息,該文件位於config/locales/simple_form.en.yml
中。
在特定的初始化程序config/initializers/simple_form.rb
中,您可以否決如何生成html的默認選項。
希望這會有所幫助。
爲了完整,我想補充一點,formtastic是一個更容易的選擇,因爲它有一個默認佈局。我很喜歡simple_form,但它並不提供任何格式,但這是他們的意圖。使用Formtastic很難(不可能)更改生成的html,並且使用simple_form可以完全根據自己的喜好生成生成的html。如果你有一個設計者,這是特別有用的,你生成的表格必須生成相同的html。所以如果你開始了,formtastic會更快地給你看起來更漂亮的結果。還要注意,切換非常容易,因爲語法幾乎完全相同。
更改'simple_form.en.yml'中的默認錯誤消息的語法是什麼?如果你有兩個驗證屬性,如':presence => true'和':format => ...'?你將如何爲每個消息提供不同的消息? – 2011-04-27 20:28:50
標準驗證消息與simple_form無關,但是標準的ActiveRecord。您可以在驗證中明確聲明消息,也可以檢查標準消息的定義(以及如何覆蓋它們)的https://github.com/svenfuchs/rails-i18n。 – nathanvda 2011-04-27 21:14:19
有沒有辦法配置simple_form將標籤和錯誤消息鏈接到默認的activerecord i18n yaml? – Matthias 2016-04-02 11:23:31
你可以聲明 錯誤消息的內容在你的模型:
validates_length_of :name, :minimum => 5, :message => "blah blah blah"
可以設置
id
或class
您 錯誤標籤:<%= f.input :name, :error_html => { :id => "name_error"} %>
然後你可以使用CSS進行造型。
你也可以使用
<%= f.error :name, :id => "name_error" %>
,你會得到
<span class="error" id="name_error">is too short (minimum is 5 characters)</span>
我不知道它是simple_form寶石有什麼不同。
有關要更改錯誤消息的內容,可以使用模型中的:message
屬性。
class User < ActiveRecord::Base
validates :email, {:presence => true, :message => "is not filled up."}
end
現在驗證信息將是Email is not filled up
。如果你想要的字段名稱也將被改變(Email
到E-mail address
類似的東西),這種方法現在在locales.rb
文件來定義它像這樣
# config/locales/en.yml
en:
activerecord:
attributes:
user:
email: "E-mail address"
見link關於locales
細節。另一種方法是在模型中定義,人性化的屬性是這樣的:
class User < ActiveRecord::Base
validates :email, {:presence => true, :message => "is not filled up."}
HUMANIZED_ATTRIBUTES = {
:email => "E-mail address",
...(other fields and their humanized names)
...
}
def self.human_attribute_name(attr, options={})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
end
有關自定義驗證消息的風格,我們將不得不修改樣式 #errorExplanation
和.fieldWithErrors
,在scaffold.css
樣式表。
- 1. 使用自定義authlogic錯誤消息
- 2. 自定義錯誤消息
- 3. 顯示錯誤消息simple_form
- 4. 用自定義消息替換錯誤
- 5. simple_form錯誤消息不會消失
- 6. R,閃亮,自定義錯誤消息
- 7. 自定義Spring錯誤消息
- 8. 翻譯自定義錯誤消息
- 9. asp.NET - 自定義錯誤消息
- 10. 自定義authlogic錯誤消息
- 11. Gmap Primefaces Geocode自定義錯誤消息
- 12. 自定義消息錯誤jQuery驗證
- 13. JSF自定義消息驗證錯誤
- 14. 運行時自定義消息 - 錯誤
- 15. FileHelper庫 - 自定義錯誤消息
- 16. Ansible Display自定義錯誤消息「stat」
- 17. WSO2 Api Manager自定義錯誤消息
- 18. WF ThrowActivities和自定義錯誤消息?
- 19. 自定義repl/nrepl錯誤消息
- 20. kohana自定義驗證錯誤消息
- 21. 自定義關聯錯誤消息
- 22. 設計自定義錯誤消息
- 23. 自定義錯誤消息和Laravel 5.1
- 24. FOSUserBundle自定義錯誤消息change_password
- 25. Linux Bash Shell自定義錯誤消息
- 26. jqgrid中的自定義錯誤消息
- 27. 自定義錯誤消息8
- 28. 自定義NSFormatter和錯誤消息
- 29. JWPLAYER自定義錯誤消息
- 30. Rails 4.2 ActionController:BadRequest自定義錯誤消息
是否要自定義錯誤消息或錯誤消息的風格disolayed? – rubyprince 2011-04-27 18:34:16
我最初的意思是錯誤信息的內容,但我也有興趣定製風格。對不起,不清楚。 – 2011-04-27 18:47:07