gpt4 book ai didi

ruby-on-rails - Rails Routes - 斜杠字符与哈希字符

转载 作者:行者123 更新时间:2023-12-04 14:59:09 25 4
gpt4 key购买 nike

在 urls 和 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

什么代码控制了这种行为,背后的深层原因是什么?

回答:

(两个人回答得很好,我很难选择将哪一个标记为已接受的答案。我希望以不同的方式陈述我对答案的理解,可能会对人们有所帮助。)

使用/符号后,该字符串将被识别为附加到基本 url 的 url 字符串。因此,“#”字符将被解释为 url 的一部分,而 url 不喜欢使用“#”字符。

在不使用/字符的情况下,第一个单词以某种方式被识别为 Controller 名称,您可以在后面加上一个“#”和一个 Action 名称。

最佳答案

在 ruby​​ 中,哈希符号通常位于类的实例方法名称之前。请参阅 Array 类文档 ( 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不指示应该调用哪个 Controller 方法。
get 'about', to: '/static_pages#about', as: :about由于 static_pages 之前的斜杠,所以不起作用。

关于ruby-on-rails - Rails Routes - 斜杠字符与哈希字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21372675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com