私は ruby on rails の初心者で、オンライン チュートリアルに従っていました。ルートですぐに迷子になりました。URL 'pages/help' にアクセスしようとするたびに、ブラウザに「The action 'show' could not be found for PagesController」というエラーが表示されます。これらのコードを含む _header という名前の ruby パーティションがあります。
<header>
<%= link_to logo, root_path %>
<ul class="nav nav-tabs">
<li class="active">
<%= link_to "Home |", root_path %>
</li>
<li><%= link_to "Help |", pages_help_path %></li>
<li><%= link_to "Sign In", '#'%></li>
</ul>
</header>
「ヘルプ」リンクをクリックしようとすると、エラーが発生します。
私の routes.rb には、次のコードのみが含まれています。
BakeShop::Application.routes.draw do
resources :pages
root :to => 'pages#home'
#match '/help', :to => 'pages#help'
get "pages/help"
end
そして、私はこれらのコードのみを持つ PagesController を持っています:
class PagesController < ApplicationController
def home
end
def help
end
end
「rake routes」を実行すると、含まれるリストは次のとおりです。
pages GET /pages(.:format) pages#index
POST /pages(.:format) pages#create
new_page GET /pages/new(.:format) pages#new
edit_page GET /pages/:id/edit(.:format) pages#edit
page GET /pages/:id(.:format) pages#show
PATCH /pages/:id(.:format) pages#update
PUT /pages/:id(.:format) pages#update
DELETE /pages/:id(.:format) pages#destroy
root GET / pages#home
pages_help GET /pages/help(.:format) pages#help
確かに、ビュー フォルダーに home.html.erb と help.html.erb が作成されています。そしてひねりは、ビューフォルダーに「show.html.erb」を作成し、ページコントローラーに「show」という名前のアクションを作成すると、エラーが消えてにリンクすることです。
だから私が言いたいのは、誰かこれを説明できますか?Rails が、私が定義していない「ヘルプ」アクションではなく「表示」アクションを探しているのはなぜですか