设置在Rails的静态路由
问题描述:
需要一些帮助的Rails(使用Rails 4.0.8和2.0.0红宝石)...设置在Rails的静态路由
我想修改我的路线,这样反而具有...
App::Application.routes.draw.do
get "static_pages/home"
get "static_pages/help"
get "static_pages/about"
get "static_pages/contact"
end
..在我路线fI'm将其设定为....
App::Application.routes.draw.do
root 'static_pages#home'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
end
...但是当我这样做,我认为“匹配‘/关于’”应该在控制器和视图中自动创建命名路线,看起来像......
about_path -> '/about'
about_url -> 'http://localhost:3000/about'
...但它不这样做在我的控制器。所以我想,“好吧,我手动把他们”,所以我做了应用程序/控制器/ static_pages_controller.rb ...
class StaticPagesController < ApplicationController
def home
root_path -> '/'
root_url -> 'http://localhost:3000/'
end
def help
help_path -> '/help'
help_url -> 'http://localhost:3000/help'
end
def about
about_path -> '/about'
about_url -> 'http://localhost:3000/about'
end
def contact
contact_path -> '/contact'
contact_url -> 'http://localhost:3000/contact'
end
end
...它不会做任何事情。所以现在当我尝试去主页时,例如,我得到路由错误没有路由匹配[GET]“/ static_pages/home”。
我是新来的rails开发,所以我敢肯定,这里有一些相当明显的东西。任何人都可以阐明发生了什么?非常感激。
EDIT 1回答
答案被BroiSatse和赤穗给予...
在路由配置我mising的为:关键,所以更新我的代码
App::Application.routes.draw.do
root 'static_pages#home'
match '/help', to: 'static_pages#help', via: 'get', as: :help
match '/about', to: 'static_pages#about', via: 'get', as: :about
match '/contact', to: 'static_pages#contact', via: 'get', as: :contact
end
窍门。谢谢!
答
所有你缺少的是as
关键:
App::Application.routes.draw.do
root 'static_pages#home'
match '/help', to: 'static_pages#help', via: 'get', as: :help
match '/about', to: 'static_pages#about', via: 'get', as: :about
match '/contact', to: 'static_pages#contact', via: 'get', as: :contact
end
添加为重点将使命名的路由,将创建所需的url_helpers。
编辑:
但是,你可以做的更好:
App::Application.routes.draw.do
root 'static_pages#home'
scope controller: :static_pages do
get :help
get :about
get :contact
end
end
+0
明白了,非常感谢! – Ponchooo 2014-09-28 15:23:28
这不是动态路线。这些是静态路线 – ahnbizcad 2014-10-21 11:33:51