我无法使用Ruby on rails显示无效输入的错误消息。如果有人可以帮我吗?目前是该地区的新人。
我怀疑该区域是由于:user和@user。
这是我在index.html.erb上生成的表单
<%= form_for :user, url: '/login', html:{id:"form"} do |f| %>
<h2 class="login">Login</h2>
<div class="form">
<input type="name" placeholder="Name" name="user[name]" class="form-input" required /></div>
<% end %>
我的ActiveRecord模型:
class User < ActiveRecord::Base
validates :name, :uniqueness => true
has_secure_password
end
我尝试使用以下错误处理,方法是在<%= form_for :user, url: '/login', html:{id:"form"} do |f| %>
之后传递以下代码,但它不起作用并显示:
NoMethodError :nil的未定义方法`errors':NilClass
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
答案 0 :(得分:0)
你应该可以做这样的事情。
/app/views/shared/_error_messages.html.haml:
- if object.errors.any?
.alert.alert-danger
The form contains #{pluralize(object.errors.count, "error")}.
%ul#error_explanation
- object.errors.full_messages.each do |msg|
%li= msg
然后,无论您希望在视图中显示错误,请执行以下操作:
= render 'shared/error_messages', object: f.object
注意方法中的object
。当您调用时,您可以从控制器传递对象实例,或者(在上面的例子中)传递表单构建器的对象。