这是Ruby语法还是DSL?我如何学习Ruby语法或Rails DSL?

omvjsjqw  于 9个月前  发布在  Ruby
关注(0)|答案(1)|浏览(107)

例如,下面是routes.rb文件中的一些代码

match 'products/:id' => 'products#show', via: :get

字符串
我认为match是一个没有括号的方法,所以这是我习惯的。

'products/:id' => 'products#show'


应该是一个隐含的散列?我不能创建一个散列使用没有括号像这样似乎是在这里做

my_hash = 'p' => 'x'


然后最后一个部分在我的irb中不起作用,替换了值,但保持了结构。
我知道如何阅读文档,只是复制粘贴和子出我需要的值,并使事情工作,但我想了解语法,这样我就可以写代码,而不必觉得它是任意的,需要文档告诉我到底要输入什么。

new9mtju

new9mtju1#

关于hash,它确实是一个hash。当创建一个新的hash时,Ruby希望它被定义在花括号({})中。然而,当它作为参数传递给一个方法时,它允许它在没有花括号的情况下被声明(当它是最后一个参数时)。同样的事情发生在via: :get上。
你可以阅读更多关于它在这里。

相关问题