我目前正处于Rails教程(测试版)的section 10.3.2,并遇到了RSpec的一些问题。
完全 rspec spec/ runs
,但如果按照教程中的描述rspec spec/requests/micropost_pages_spec.rb
,我会收到以下错误:
Failures:
1) Micropost pages micropost creation with invalid information should not create a micropost
Failure/Error: before { visit root_path }
ActionView::Template::Error:
undefined method `model_name' for NilClass:Class
# ./app/views/shared/_micropost_form.html.erb:1:in `_app_views_shared__micropost_form_html_erb__567210303736562711_70234980477780'
# ./app/views/static_pages/home.html.erb:8:in `_app_views_static_pages_home_html_erb___61006871036382679_70234970424160'
# ./spec/requests/micropost_pages_spec.rb:11:in `block (3 levels) in <top (required)>'
在网络浏览器中手动执行测试似乎也很完美。
不确定我是否做错了或教程中是否存在“错误”。任何人都可以提示吗?
更新1:以下是指向whole project on GitHub的链接。
更新2:我现在发现当我重新启动rails server
时,我第一次点击页面时也会收到错误。但是当我第二次加载页面(重新加载)时,它完美地工作。
答案 0 :(得分:0)
发现问题。相当愚蠢的错误。在我的static_pages_controller.rb
我有
def home
def home
@micropost = current_user.microposts.build if signed_in?
end
end
非常感谢您的提示。