1

奇妙なことに、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 モデルをテストするために開発したのはこれだけです。

4

1 に答える 1

1

ほとんどの場合、次のようなものがあります

<%= link_to "Blogs", blog_path =>

レイアウト テンプレートで。その場合は、次のように修正します<%= link_to "Blogs", blogs_path =>

于 2012-12-29T20:32:27.753 に答える