我的应用中有simple_form
,但它没有显示任何验证错误消息:
<%= simple_form_for(@user) do |f| %>
<%= f.error_notification %>
<%= f.input :first_name, label: "Prénom" %>
<%= f.input :last_name, label: "Nom" %>
<%= f.input :email, label:"email" %>
<%= f.input :telephone, label: "telephone"%>
<p><%= f.label :birthdate, 'Date de naissance' %></p>
<%= f.date_select :birthdate, {:include_blank => true, :default => nil, :use_month_names => ['Janv.','Fevr.', 'Mars', 'Avr.', 'Mai', 'Juin', 'Juil.', 'Août','Sept.', 'Oct.', 'Nov.', 'Déc.'], :order => [:day, :month, :year], :start_year => 1910, :end_year => 1995} %>
<%= f.input :genre, label: "Sexe" %>
<%= f.input :ranking, label:"Classement" %>
<%= f.input :licence_number, label: "numéro de licence"%>
<p>
<%= f.label :Photo%>
<%= f.file_field :picture %>
</p>
<p>
<%= f.label :licence %>
<%= f.file_field :licencepicture %>
</p>
<p>
<%= f.label :certificat %>
<%= f.file_field :certifmedpicture %>
</p>
<div id="validation"><%= f.submit %></div>
<% end %>
以下是我的用户模型中的验证
validates :first_name, presence: { strict: true }, on: :update
validates :last_name, presence: { strict: true }, on: :update
您可以查看我的simple_form.en.yml
:
en:
simple_form:
"yes": 'Yes'
"no": 'No'
required:
text: 'required'
mark: '*'
# You can uncomment the line below if you need to overwrite the whole required html.
# When using html, text and mark won't be used.
# html: '<abbr title="required">*</abbr>'
error_notification:
default_message: "Certains champs posent problèmes:"
我的update
方法:
def update
@user.update(user_params)
@user.create_mangopay_natural_user_and_wallet
redirect_to user_path(current_user)
end
我不知道为什么错误通知不会显示,因为我在视图中有f.error_notification
答案 0 :(得分:1)
如您的评论所示,您的控制器无法检查是否成功保存,只是盲目地重定向到用户页面。我没有看到simple_form
的任何本机功能为您执行此操作。您需要检查此成功保存并在失败时重新呈现编辑表单,以便它可以在f.error_notification
中显示这些错误:
def update
if @user.update(user_params)
@user.create_mangopay_natural_user_and_wallet
redirect_to user_path(current_user)
else
render 'edit'
end
end