Rails 路线 - 斜杠字符与哈希字符

2024-02-16

在 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(使用前将#替换为@)

Rails 路线 - 斜杠字符与哈希字符 的相关文章

随机推荐