在 url 和 Rails 路由中,使用斜杠字符与井号(井号)字符有什么区别?
这些工作
get "/static_pages/about"
get 'about', to: 'static_pages#about', as: :about
这些不
get "/static_pages#about"
get 'about', to: 'static_pages/about', as: :about
get 'about', to: '/static_pages#about', as: :about
哪些代码控制这种行为,其背后更深层的原因是什么?
ANSWER:
(这两个人回答得很好,我很难选择将哪一个标记为已接受的答案。我希望以一种不同的方式表达我对答案的理解,以帮助人们。)
一旦使用 / 符号,该字符串就会被识别为附加到基本 url 的 url 字符串。因此,“#”字符将被解释为 url 的一部分,而 url 不喜欢采用“#”字符。
在不使用 / 字符的情况下,第一个单词会以某种方式被识别为控制器名称,您可以在其后面添加“#”和操作名称。
在 ruby 中,哈希符号通常位于类的实例方法名称之前。请参阅 Array 类文档页面的左侧边栏(http://www.ruby-doc.org/core-2.1.0/Array.html http://www.ruby-doc.org/core-2.1.0/Array.html).
get "/static_pages#about"
不起作用,因为#about
不是网址的一部分。
get 'about', to: 'static_pages/about', as: :about
不起作用,因为/about
不指示应调用哪个控制器方法。
get 'about', to: '/static_pages#about', as: :about
由于 static_pages 前面有斜杠,因此不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)