1

奇怪的是,当我在 routes.rb 中包含“resources :blogs”时,我尝试到达的任何其他路径都会出现以下错误:

No route matches {:action=>"show", :controller=>"blogs"}

我没有收到此错误的唯一路径是“/blogs/:id(.:format)”本身。

耙路线(第 5 行中“博客”的“显示”):

    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 %>

到目前为止,这就是我为测试我的博客模型而开发的全部内容。

4

1 回答 1

1

最有可能的是,你有类似的东西

<%= link_to "Blogs", blog_path =>

在布局模板中。如果是这样,请将其更正为<%= link_to "Blogs", blogs_path =>

于 2012-12-29T20:32:27.753 回答