首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Rails中设置静态路径

在Rails中设置静态路径
EN

Stack Overflow用户
提问于 2014-09-28 15:07:46
回答 2查看 1.7K关注 0票数 2

需要一些Rails帮助(使用rails 4.0.8和ruby2.0.0)。

我想重塑我的路线,所以我没有.

代码语言:javascript
运行
复制
App::Application.routes.draw.do
   get "static_pages/home"
   get "static_pages/help"
   get "static_pages/about"
   get "static_pages/contact"
end

。。在我的路线中,我把它设定为..。

代码语言:javascript
运行
复制
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“应该自动创建指定的路由,以便在控制器和视图中使用,看起来像.

代码语言:javascript
运行
复制
about_path -> '/about'
about_url -> 'http://localhost:3000/about'

...but在我的控制器中没有这样做。所以我想,“好吧,我会手动把它们放进去”,于是我制作了app/控制器/static_Controller.rb。

代码语言:javascript
运行
复制
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,因此将我的代码更新为

代码语言:javascript
运行
复制
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

成功了。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-28 15:10:39

你所缺少的只是as键:

代码语言:javascript
运行
复制
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。

编辑:

但是,您可以做得更好:

代码语言:javascript
运行
复制
App::Application.routes.draw.do
  root 'static_pages#home'

  scope controller: :static_pages do
    get :help
    get :about
    get :contact
  end
end
票数 4
EN

Stack Overflow用户

发布于 2014-09-28 15:11:14

要定义指定的路由,可以这样做:

代码语言:javascript
运行
复制
match '/about', to: 'static_pages#about', via: 'get', as: :about

这将给你about_path

您可以了解有关命名路由这里的更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26086268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档