奇怪的是,当我在 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 %>
到目前为止,这就是我为测试我的博客模型而开发的全部内容。