[英]Rails - Editing default appearance of error messages
Rails的新手,我正在做一些簡單的練習。 現在,我正在處理錯誤消息。 我有一些關於這些默認行為的問題
1) 所有錯誤的屬性都帶有前綴:為什么所有錯誤消息都帶有用於驗證錯誤的變量前綴? 在這種情況下,它是score
。 如何從錯誤消息中刪除此屬性名稱,而僅顯示我的錯誤消息? 有沒有簡單的方法可以做到這一點?
2) 紅色突出顯示 :為什么“得分”標簽和相應的輸入字段以紅色突出顯示 。 根據_form.html.erb文件,它們是<div class="field">
所以我不知道這個紅色輪廓來自何處。 有辦法改變嗎?
謝謝!
歡迎來到Rails! 首先,您正在使用默認腳手架。 如果您使用的是Rails 3.2+,則您的樣式將位於/app/assets/stylesheets
。 您應該在那里有一個名為scaffold.css.scss
的文件。 該文件是頁面紅色的樣式。
現在,對於標記,您可以控制這些消息的顯示方式。 保存對象但驗證失敗后,該對象將具有errors
對象。
@car = Car.new(params[:car])
@car.save #=> false
@car.errors.messages #=> {:make => "can't be blank", :model => "doesn't make sense"}
如您所見,此錯誤對象上的messages方法將返回一個哈希,其中鍵是驗證失敗的屬性,而值是驗證中的字符串消息。
這些驗證是在您的模型中設置的,可以完全由您自定義。
class Car
validates :make, presence: true
validates :model, presence: true, message: "doesn't make sense"
end
因此,在您看來,您可以輕松地執行以下操作
<% if @car.errors.any? %>
<% @car.errors.messages.each do |field, message| %>
<!-- your custom html here -->
<% end %>
<% end %>
因此希望這會有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.