私は、Michael Hartl の Rails チュートリアルを無事に完了し、現在、より独立した最初の Web 開発プロジェクトに取り組んでいます。StackOverflow で他の NoMethodError Q&A を読みましたが、これまでのところ何も役に立ちません。
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 を使用しています。どんな助けでも大歓迎です。