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

问题描述 投票:0回答:1

例如这里是routes.rb文件中的一些代码

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

我认为 match 是一种没有括号的方法,所以这是我习惯的。然后 match 方法有两个参数。但就是

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

应该是隐含的哈希值?我无法使用不使用大括号的方式创建哈希,就像这里所做的那样

my_hash = 'p' => 'x'

然后最后一部分在我的 irb 中不起作用,替换值但保持结构。

我知道如何阅读文档,只需复制粘贴并分出我需要的值并使事情正常工作,但我想了解语法,以便我可以编写代码而不必感觉它是任意的并且需要文档来准确地告诉我要输入什么内容。

ruby-on-rails ruby dsl
1个回答
0
投票

关于哈希,它确实是哈希。创建新哈希时,Ruby 希望它在大括号 (

{}
) 内定义。但是,当将其作为参数传递给方法时(当它是最后一个参数时),它允许在不使用大括号的情况下声明它。同样的事情也发生在
via: :get

您可以在此处阅读更多相关信息。

© www.soinside.com 2019 - 2024. All rights reserved.