我成功完成了 Michael Hartl 的 Rails 教程,现在我正在从事我的第一个更独立的 Web 开发项目。我在 StackOverflow 上阅读了其他 NoMethodError 问答,但到目前为止没有任何帮助。
我正在重新使用 Hartl 涵盖的概念,特别是定义一个名为full_title
. 我已将以下代码放入/app/helpers/application_helper.rb
:
module ApplicationHelper
def full_title(page_title)
base_title = 'BaseTitle Text'
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end
end
end
然后在app/views/layouts/application.html.erb
,我把这段代码:
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
通过这些测试spec/requests/static_pages_spec.rb
,我得到了NoMethodError / undefined method
.
it "should have the right links on the layout" do
visit root_path
click_link "About"
page.should have_selector 'title', text: full_title('About')
click_link "Contact"
page.should have_selector 'title', text: full_title('Contact')
我不太确定为什么这里没有方法被识别。
仅供参考,我正在使用 Capybara 1.1.2,以防万一。非常感谢任何帮助。