奇妙なことに、routes.rb に「resources :blogs」を含めると、他のパスに到達しようとすると次のエラーが表示されます。
No route matches {:action=>"show", :controller=>"blogs"}
このエラーが発生しない唯一のパスは、「/blogs/:id(.:format)」自体です。
Rake ルート ( 5 行目の "blogs" の "show" ):
blogs GET /blogs(.:format) blogs#index
POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
PUT /blogs/:id(.:format) blogs#update
DELETE /blogs/:id(.:format) blogs#destroy
root / pages#home
home /home(.:format) pages#home
products /products(.:format) pages#products
services /services(.:format) pages#services
research /research(.:format) pages#research
/blog(.:format) pages#blog
contact /contact(.:format) pages#contact
一方、コンソールで試した場合、「/products」(たとえば) にはそのようなエラーはなく、ブラウザーでは「ルートが一致しません」というエラーが返されます。
1.9.3p327 :010 > Rails.application.routes.recognize_path "/products"
=> {:controller=>"pages", :action=>"products"}
1.9.3p327 :011 > Rails.application.routes.recognize_path "/blogs/1"
=> {:action=>"show", :controller=>"blogs", :id=>"1"}
何か案が?
アップデート:
ここに私の blogs_controller.rb があります:
class BlogsController < ApplicationController
def show
@blog = Blog.find(params[:id])
end
def new
end
end
そしてブログの私のshow.html.erb:
<%= @blog.title %>, <%= @blog.description %>
これまでのところ、Blog モデルをテストするために開発したのはこれだけです。