2015-05-21 142 views
0

我无法在rails上使用Ruby显示无效输入的错误消息。如果有人能帮助我呢?目前该区域是新的。Ruby on rails 4:显示错误消息

我怀疑该区域是由于:用户和@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#register :undefined方法错误为零: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

您需要用对象实例替换'@ user'和'@ article'。 –

回答

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在方法。当你调用的时候,你可以传递一个来自你的控制器的对象实例或者(在上面的例子中)一个表单构建器的对象。

相关问题