2015-04-01 67 views
0

我正在学习Rails,并正在实施一个应用程序,我决定通过该应用程序去检查Site Point tutorial在渲染共享错误时,Rails 4中的ActionView :: TemplateMissing错误

根据它,我已经做了以下的apps/views/users/new.html.erb

<%= form_for @user do |f| %> 
    <%= render 'shared/errors', object: @user %> #=> error 
    <div class="form-group"> 
     <%= f.label :name %> 
     <%= f.text_field :name, placeholder: 'Your display name', class: 'form-control', required: true %> 
    </div> 
<% end %> 

但是我却越来越

ActionController:MissingTemplateUsers#new

我怎样才能摆脱它?我已经发布了完整的跟踪here

+1

你没有提供完整的错误信息,所以只是猜测:你有'views/shared/errors.html.erb'模板吗? – 2015-04-01 08:09:08

+0

@MarekLipka不,我没有。另外,我在这个问题上贴满了全部痕迹。 – 2015-04-01 08:09:57

+0

这就是为什么你有错误,正如消息所述。 – 2015-04-01 08:10:47

回答

1

本教程你以下假设你有一个_errors.html.erb文件中app/views/shared目录。

<%= render 'shared/errors', object: @user %> 

这行代码试图渲染部分,并通过@user将在局部使用。

如果您想删除该错误,请删除该行代码。如果你想显示这些错误,然后创建相关的文件,并阅读如何display errors in the view

+0

感谢您的链接。有效。 – 2015-04-01 08:24:43

+0

怎么可能说没有代码和日志 – argentum47 2015-04-01 08:34:00

+0

@ argentum47 nope。我想到了。这是一个错字。 – 2015-04-01 08:36:19

1
<% if object.errors.any? %> 
    <div id="error_explanation"> 
    <ol> 
     <% object.errors.full_messages.each do |msg| %> 
     <li class="alert alert-danger"><%= msg %></li> 
     <% end %> 
    </ol> 
    </div> 
<% end %> 

将这个在您的app/views/shared/_errors.html.erb

+0

我正在为#<#获取未定义的局部变量或方法'obj':0x5d01d28>'我应该怎么做? – 2015-04-01 08:17:46

+0

对不起,我的错误...检查新的答案 – argentum47 2015-04-01 08:19:43

+0

看来我必须使用变量'@ user'而不是'object'。 – 2015-04-01 08:24:15