我一直在關注Michael Hartl的Rails教程。實際上我已經完成了它,但是我在最後一章的最後一個練習中做了一些重構,出現了一些問題。我所做的只是改變放映視圖從該用戶模型(show.html.erb):當應用程序按預期工作時,爲什麼這些RSpec測試失敗?
<section>
<h1>
<%= gravatar_for @user %>
<%= @user.name %>
</h1>
</section>
要這樣:
<section>
<%= render 'shared/user_info' %>
</section>
而在部分(_user_info.html.erb)我有這樣的:
<a href="<%= user_path(current_user) %>">
<%= gravatar_for current_user, size: 52 %>
</a>
<h1> <%= current_user.name %> </h1>
<% unless current_page?(user_path(current_user)) %>
<span> <%= link_to "view my profile", current_user %> </span>
<span> <%= pluralize(current_user.microposts.count, "micropost") %> </span>
<% end %>
,一切工作正常的瀏覽器,但由於某種原因rspec的失敗一些測試,我懷疑調用它在sessions_helper.rb定義的CURRENT_USER方法,rspec的是有問題,這對w- ay包含在application_helper.rb中。 gravatar_for函數在users_helper.rb中定義。下面是我從測試中得到的錯誤:
故障/錯誤:前{訪問user_path(用戶)} ::的ActionView ::模板錯誤: 未定義的方法email' for nil:NilClass # ./app/helpers/users_helper.rb:4:in
gravatar_for」 #./app/views/shared在 #./spec/requests/user_pages_spec.rb:58:in`塊(3級)'/_user_info.html.erb:1:in _app_views_shared__user_info_html_erb___3480157814439046731_47327400' # ./app/views/users/show.html.erb:5:in
_app_views_users_show_html_erb___1252254778347368838_47378900'
我將不勝感激,如果你能不能幫我鑑定一下正在這裏。我可以找到不同的方式來做同樣的事情,但我對此很好奇。我對Rails的經驗並不是很豐富,這就是爲什麼我遵循教程,所以如果我錯過了某些明顯的東西,請原諒我。謝謝。
您是否試圖在顯示頁面上顯示登錄用戶的信息或您的頁面上的特定用戶? – 2012-07-11 11:32:00
其實,我使用相同的部分爲主頁和登錄用戶的個人資料頁面,因爲該特定的內容如果非常相似(除非在非除非的內容)。該應用程序託管在heroku上,這裏是鏈接:[link](https://afternoon-river-7478.herokuapp.com/),您可以通過電子郵件登錄:[email protected],傳遞:foobar – Jose 2012-07-11 11:51:02