Ruby on rails 失败/错误:get:show,:id=>@用户

Ruby on rails 失败/错误:get:show,:id=>@用户,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习Rails教程。在第11章中,当我添加此代码时 <% if @user.microposts.any? %> <table class="microposts" summary= "User microposts"> <%= render @microposts %> </table> <%= will_paginate @microposts %>

我正在学习Rails教程。在第11章中,当我添加此代码时

<% if @user.microposts.any? %>
        <table class="microposts" summary= "User microposts">
        <%= render @microposts %>
        </table>
        <%= will_paginate @microposts %>
        <% end %>

我得到如下两个错误

1) UsersController GET 'show' should show the user's microposts
   Failure/Error: get :show, :id => @user
   ActionView::Template::Error:
     Missing partial microposts/micropost with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/home/ruby/new_rails/rail_new_app/app/views"
   # ./app/views/users/show.html.erb:10:in `_app_views_users_show_html_erb___4312949856623214655_35714500__2182421899600364460'
   # ./spec/controllers/users_controller_spec.rb:100:in `block (3 levels) in <top (required)>'

 2) UsersController GET 'show' should paginate microposts
   Failure/Error: get :show, :id => @user
   ActionView::Template::Error:
     Missing partial microposts/micropost with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths "/home/ruby/new_rails/rail_new_app/app/views"
1)用户控制器GET'show'应显示用户的微操作
失败/错误:get:show,:id=>@user
ActionView::模板::错误:
在视图路径“/home/ruby/new\rails/rails\new\u app/app/views”中缺少带有{:handlers=>[:erb,:rjs,:builder,:rhtml,:rxml],:formats=>[:html],:locale=>[:en,:en]}的部分micropost/micropost
#./app/views/users/show.html.erb:10:in`_app_views_users_show_html_erb_4312949856623214655_35714500_2182421899600364460'
#./spec/controllers/users\u controller\u spec.rb:100:in'block(3级)in'
2) UsersController获取“show”应为MicroPost分页
失败/错误:get:show,:id=>@user
ActionView::模板::错误:
在视图路径“/home/ruby/new\rails/rails\new\u app/app/views”中缺少带有{:handlers=>[:erb,:rjs,:builder,:rhtml,:rxml],:formats=>[:html],:locale=>[:en,:en]}的部分micropost/micropost

请让我知道我错在哪里。

错误:缺少部分micropost/micropost

这是因为
需要一个分部来呈现MicroPost集合,如错误所述

警告:如果您只提供一个对象,并让rails自行确定部分,那么它将默认为
:复数形式的(model)名称/(singularized):单数形式的(model)名称
,在您的例子中是
微成本/(micropost)
。如果希望rails为集合呈现另一部分,则需要显式指定它<代码>渲染部分:“用户/microposts”,集合:@microposts


您只需要创建部分。阅读错误信息,它们会很有帮助。

听起来你已经解决了这个问题,但万一其他人正在阅读Hartl教程并发现这个错误,请参见:

清单11.21:显示单个微帖子的一个部分

这是在教程中创建文件的位置

确保您创建的文件具有以下名称:

app/views/microposts/_micropost.html.erb

还要确保该文件具有适当的内容。

我在users\u controller.rb@microsopsts=@user.microsopsts.paginate(:page=>params[:page])中添加了此代码。如果仍然出现错误,rails将无法找到您的部分代码。你确定你有app/views/micropost/micropost.html.erb或其他什么吗?非常感谢,先生。。。。我得到了它。。。。我在app/views/users/micropost文件夹中创建了micropost.html.erb。。。非常感谢……不客气。您可以为此答案设置绿色勾号;)