加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 了解rails路由:在route.rb中匹配vs根

发布时间:2020-12-16 20:12:14 所属栏目:百科 来源:网络整理
导读:我正在从这个链接跟踪rails教程: http://ruby.railstutorial.org/chapters/filling-in-the-layout#code:static_page_routes 在/config/routes.rb文件中,我有 SampleApp::Application.routes.draw do match '/contact',:to = 'pages#contact' match '/about'
我正在从这个链接跟踪rails教程:
http://ruby.railstutorial.org/chapters/filling-in-the-layout#code:static_page_routes

在/config/routes.rb文件中,我有

SampleApp::Application.routes.draw do
  match '/contact',:to => 'pages#contact'
  match '/about',:to => 'pages#about'
  match '/help',:to => 'pages#help'

  root :to => 'pages#home'
end

当我运行的网站,它给我一个错误:没有路线存在页面/家.我在论坛周围搜索,ppl建议将匹配’/ pages / home’=> “网页#家”

我做了

SampleApp::Application.routes.draw do
  match '/contact',:to => 'pages#help'
  match '/pages/home' => 'pages#home'

  root :to => 'pages#home'
end

一切都奏效但现在我的问题是,有什么区别呢?

1. match '/something',:to => 'pages#something'
2. match '/something' => 'pages#something'
3. root :to => 'pages#home'

基本上,我刚才的代码.根本不应该占用主页面,我不会需要匹配页面/ home =>网页#回家吗?

令人困惑,

谢谢!

编辑1:我没有得到我想要的答案,所以我假设我的问题是错的.我会把它分解成两部分:

>有什么区别?

match’/ pages / home’=> “网页#家”

root:to => “网页#家”

有些人说root将它带到你的根页面,我可以理解,但正如我上面所解释的,如果我只是根目录:pages / home显示一个路由错误. page / home应该与root页面一样,是否正确?

>有什么区别?

match’/ contact’,:to => “网页#接触”

match’/ pages / home’=> “网页#家

在语法上,第一行有:to =>而第二行没有.是要:需要吗?它有什么作用?

谢谢

解决方法

我所知道的
match '/something',:to => 'pages#something'
match '/something' => 'pages#something'

是等同的在Rails中找到不止一种方式来说同样的事情并不罕见.常用的方法有很多符号.如果你关心,后者是我经常使用和看到的.

就根路径而言,这是发生了什么:root:to => ‘pages#home’正如你已经知道的那样将“/”映射到pages_controller.rb中的home方法.但是使用“page#home”不会创建url“pages / home”.它所做的就是告诉rails遇到“/”时执行什么.这就是为什么你还需要告诉rails遇到“pages / home”时该怎么办.路线定义是单向交易.

还有更多的我可以说,但我会尽量保持我的答案简短.如果你需要更多的澄清,让我知道.另外,this rails guide是一个很好的资源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读