簡體   English   中英

Rails-編輯錯誤消息的默認外觀

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM