【发布时间】:2014-01-11 02:39:59
【问题描述】:
我是 Rails 新手。我正在尝试在 rails 示例应用程序中启用命名路由的使用。当我执行以下操作并尝试在浏览器中访问该页面时,我得到 Action Controller: Exception Caught 作为标题,以及一条 no route matches 消息。
config/routes.rb
SampleApp::Application.routes.draw do
# root to: 'static_pages#home' #matches '/'
root to: 'static_pages#home'
match '/help', to: 'static_pages#help', via: [:get, :post] (*)
match '/about', to: 'static_pages#about', via: [:get, :post] (*)
match '/contact', to: 'static_pages#contact', via: [:get, :post] (*)
[...comments...]
end
我的控制器中有必要的操作。我也有意见,但都不是错误信息。确切的错误信息如下:
No route matches [GET] "/static_pages/home"
我也尝试过root 'static_pages#home' 作为替代方案。依然没有。
(*) 当我删除 via: [:get, :post] 时,浏览器会抛出 RuntimeError 说,
你不应该在你的路由器中使用
match方法 指定 HTTP 方法。如果您想向两者公开您的操作 GET 和 POST,添加via: [:get, :post]选项。如果你想暴露 您对 GET 的操作,在路由器中使用get:而不是:匹配 “controller#action” 做:得到“controller#action”
【问题讨论】:
标签: ruby-on-rails routes railstutorial.org