需要一些Rails帮助(使用rails 4.0.8和ruby2.0.0)。
我想重塑我的路线,所以我没有.
App::Application.routes.draw.do
get "static_pages/home"
get "static_pages/help"
get "static_pages/about"
get "static_pages/contact"
end。。在我的路线中,我把它设定为..。
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...But当我这样做时,我认为"match‘/about“应该自动创建指定的路由,以便在控制器和视图中使用,看起来像.
about_path -> '/about'
about_url -> 'http://localhost:3000/about'...but在我的控制器中没有这样做。所以我想,“好吧,我会手动把它们放进去”,于是我制作了app/控制器/static_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...which什么也不做。因此,现在当我尝试转到主页时,例如,我得到路由错误没有路由匹配获取“/static/ home”。
我刚开始使用rails开发,所以我确信我在这里遗漏了一些相当明显的东西。有人能弄清楚这是怎么回事吗?非常感谢。
编辑1与答案
BroiSatse和Ako给出了答案。
在路由配置中,我丢失了as: key,因此将我的代码更新为
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成功了。谢谢!
发布于 2014-09-28 15:10:39
你所缺少的只是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发布于 2014-09-28 15:11:14
要定义指定的路由,可以这样做:
match '/about', to: 'static_pages#about', via: 'get', as: :about这将给你about_path。
您可以了解有关命名路由这里的更多信息。
https://stackoverflow.com/questions/26086268
复制相似问题