Ruby on rails 4:显示错误消息

时间:2015-05-21 16:40:21

标签: ruby ruby-on-rails-4

我无法使用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| %>之后传递以下代码,但它不起作用并显示:

用户#reg中的

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 %>

1 个答案:

答案 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。当您调用时,您可以从控制器传递对象实例,或者(在上面的例子中)传递表单构建器的对象。