1

我在使用 Michael Hartl 的 Ruby on Rails 教程时遇到了一些问题。我在第 10 章结束时遇到了大量失败的测试。我已经将我的代码与 Michael 放在一起的 github repo 进行了比较,它们排成一行。这是失败的测试报告:

  1) Authentication signin with valid information 
     Failure/Error: click_button "Sign in"
     ActionView::Template::Error:
       Missing partial shared/stats with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
         * "/Users/bobbysudekum/Documents/Projects/rails/Secondattempt/sample_app_three/app/views"
     # ./app/views/users/show.html.erb:11:in `_app_views_users_show_html_erb___2309319721249673303_70162631795520'
     # (eval):2:in `click_button'
     # ./spec/requests/authentication_pages_spec.rb:34:in `block (4 levels) in <top (required)>'

  2) Authentication signin with valid information 
     Failure/Error: click_button "Sign in"
     ActionView::Template::Error:
       Missing partial shared/stats with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
         * "/Users/bobbysudekum/Documents/Projects/rails/Secondattempt/sample_app_three/app/views"
     # ./app/views/users/show.html.erb:11:in `_app_views_users_show_html_erb___2309319721249673303_70162631795520'
     # (eval):2:in `click_button'
     # ./spec/requests/authentication_pages_spec.rb:34:in `block (4 levels) in <top (required)>'

  3) Authentication signin with valid information 
     Failure/Error: click_button "Sign in"
     ActionView::Template::Error:
       Missing partial shared/stats with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
         * "/Users/bobbysudekum/Documents/Projects/rails/Secondattempt/sample_app_three/app/views"
     # ./app/views/users/show.html.erb:11:in `_app_views_users_show_html_erb___2309319721249673303_70162631795520'
     # (eval):2:in `click_button'
     # ./spec/requests/authentication_pages_spec.rb:34:in `block (4 levels) in <top (required)>'

     # REMOVED 43 more identical errors

从 github 移植的视图

<% provide(:title, @user.name) %>
<div class="row">
  <aside class="span4">
    <section>
      <h1>
        <%= gravatar_for @user %>
        <%= @user.name %>
      </h1>
    </section>
    <section>
      <%= render 'shared/stats' %>
    </section>
  </aside>
  <div class="span8">
    <%= render 'follow_form' if signed_in? %>
    <% if @user.microposts.any? %>
      <h3>Microposts (<%= @user.microposts.count %>)</h3>
      <ol class="microposts">
        <%= render @microposts %>
      </ol>
      <%= will_paginate @microposts %>
    <% end %>
  </div>
  </div>
</div>

很抱歉没有包含示例代码 - 超出了字符数限制。请查阅 github 上的其余代码 - https://github.com/rsudekum/sample_app_three

作为 Rails/ruby 的新手,我真的不知道在失败的测试中要寻找什么。如果有人能指出我正确的方向,那将非常感激。

先谢谢了。

4

1 回答 1

1

请查看我的拉取请求:https ://github.com/rsudekum/sample_app_three/pull/1

这是我克隆应用程序并调查错误时的笔记。请注意,我在发布对答案的评论之前就开始了调查,因此我可能已经注意到您已经知道的事情。无论如何,所有规格现在都在我的机器上传递。我试图使应用程序类似于第 10 章末尾的教程状态,但我从未遵循过本教程,因此它可能不完全匹配。

第一次迁移 .20120711232738_create_users.rb似乎已将其整个文件内容替换为 20120714233631_create_microposts.rb. (意外复制粘贴?)恢复到其原始内容可以解决迁移问题。

部分输入views/shared/_stats.html.erb丢失了。既然你说你刚刚完成了第 10 章,而这个部分直到第 11 章才介绍,所以我决定注释掉对它的引用而不是更新部分本身,因为部分引用了直到第 11 章才讨论的内容。

部分同上follow_form

根据清单 10.42 和 10.47, theshared/feedshared/feed_itempartials 不正确。我更正了它们以反映这些列表。

object: f.object您忘记在渲染 error_messages部分 from时进行分配users/edit.html.erb

你用confirm: "..."users/_user.html.erb. 没关系,但已弃用,所以我改为data: { confirm: "..." }改为。

同上。confirm_microposts/_microposts.html.erb

您忘记添加SessionsController#destroy. 清单 8.29 对此进行了介绍。我添加了它。

于 2012-07-15T18:54:38.267 回答