所以我的Rails应用程序中有一个表单位于_form.html.erb
。
我在我网站的每个页面上都显示了这个部分内容,因此它背后并没有任何模型逻辑,用户创建的表单在视图中即时生成:
<%= form_for User.new, :validate => true do |f| %>
<table>
<tr>
<td><%= f.label :invitation_token, "Invite Token" %></td>
<td><%= f.text_field :invitation_token, :placeholder => "From your inbox…".html_safe %></td>
</tr>
<tr>
<td colspan="2"><br><%= f.submit "Sign Up" %></td>
</tr>
</table>
<% end %>
我的用户模型中有一些验证,但重新加载后如何在视图中显示这些验证错误?
我已尝试过User.new.errors.inspect
,但即使出现验证错误,messages参数也始终为空。
答案 0 :(得分:2)
有几种方法可以做到这一点。由于您可能希望在许多地方呈现这些错误消息,请在您的视图app/views/shared/_error_messages.html.erb
中创建一个共享文件夹并添加此部分:
<% if object.errors.any? %>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
</ul>
<% end %>
现在在您的视图中添加代码,以便在form for
<%= render 'shared/error_messages', object: f.object %>