我在我的Ruby on Rails
項目中有幾個表單,都需要驗證。對於創建用戶的人來說,f.error_notification
方法對於顯示錯誤非常有效,我相信因爲它與用戶模型一起工作。不過,我有另一種編輯密碼的方式,這種方式工作不正確。我試圖使用所有相同的方法,以便在網站上的所有錯誤消息顯示相同的地方。我遇到的問題是,如果密碼不匹配(或者還有其他類型的問題),f.error_notification
在頂部顯示爲紅色:Please review the problems below.
應該如此。但它實際上並不顯示任何問題。Ruby中的簡單表單驗證工作不正確
這是形式:
<h2>Change your password</h2>
<%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
<%= f.error_notification %>
<%= f.hidden_field :reset_password_token %>
<div><%= f.label :password, "New password" %><br />
<%= f.password_field :password, :autofocus => true, required: true %></div><br />
<div><%= f.label :password_confirmation, "Confirm new password" %><br />
<%= f.password_field :password_confirmation, required: true %></div>
<br>
<%= button_tag(type: 'submit', class: "btn doc-action-btn btn-success") do %>
<i class="glyphicon glyphicon-check"></i> Change my password
<% end %>
<% end %>
我不知道還有什麼可以張貼代碼明智的,使其更清楚,但我很高興我的更新後,如果有別的東西,我可以補充。我還應該注意到上面的表格是由Devise
生成的。爲了一致性,我從Devise錯誤消息切換到Rails
,因爲我們在自定義表單中的其他地方使用了Rails
。謝謝!
我試圖避免這種情況,其實我用'f.error_notification'取代它,正如我所說的,以保持一致性。有沒有辦法自定義設計錯誤消息,以便它們顯示在每個輸入旁邊而不是頂部? – user3254621