link_to
「Category」リソースがあり、メソッドと_path
ルートを使用して、その index.html.erb ファイルで Categories#show にリンクしようとしています。ブラウザでインデックスを表示すると、次のエラーが表示されます。
Routing Error No route matches {:action=>"show", :controller=>"categories"}
しかし、Categories コントローラーで定義された show アクションがあり、の URI 部分を削除するlink_to
と、例外がスローされることなくインデックスが正常に表示されます! URI のどこが間違っているのかわかりません。
/categories/index.html.erb は次のとおりです。
<h1>My Links</h1>
<% @categories.each do |c| %>
<h2><%= link_to "#{c.category}", category_path %></h2>
<p><%= c.description %></p>
<% end %>
<%= link_to "Add new category", new_category_path %>
/categories/show.html.erb は次のとおりです。
<h1><%= @category.category %></h1>
<p><%= @category.description %></p>
<p><%= link_to "Back to index", root_path %></p>
/config/routes.rb は次のとおりです。
LinkManager::Application.routes.draw do
resources :categories do
resources :links
end
root :to => 'categories#index'
以下は /controllers/categories_controller.rb の一部です:
class CategoriesController < ApplicationController
def index
respond_with(@categories = Category.all)
end
def show
@category = Category.find(params[:id])
end
そして、これが実行の結果ですrake routes
(ここでうまくフォーマットする方法がわからなかったので、ペーストビンに入れてください):rake routes
誰が何が間違っているかを見つけることができますか? ここで他の多くの同様のルーティングの質問を見てきましたが、それらから解決策を得ることができませんでした. ありがとうございました。