Ruby on rails 右边有符号的单词是散列键吗?

Ruby on rails 右边有符号的单词是散列键吗?,ruby-on-rails,ruby,literals,Ruby On Rails,Ruby,Literals,在 我不确定右边有符号的单词是什么: before_action :find_item, only: [:show, :edit, :update, :destroy] link_to "Delete", item_path(@item), method: :delete, data: { confirm: "Are you sure?"} 代表。我知道这些是方法的参数,但如果这些是散列键,我不知道为什么没有大括号。当您使用散列作为方法的最后一个参数时,Ruby允许您省略大括号,这使参数列表

我不确定右边有符号的单词是什么:

before_action :find_item, only: [:show, :edit, :update, :destroy]

link_to "Delete", item_path(@item), method: :delete, data: { confirm: "Are you sure?"}

代表。我知道这些是方法的参数,但如果这些是散列键,我不知道为什么没有大括号。

当您使用散列作为方法的最后一个参数时,Ruby允许您省略大括号,这使参数列表看起来更漂亮。这些电话转化为

only: ...

method: ..., data: ...
在\操作之前(:查找\项,{only:[:显示,:编辑,:更新,:销毁]})

当您使用散列作为方法的最后一个参数时,Ruby允许您省略大括号,这使参数列表看起来更好。这些电话转化为

only: ...

method: ..., data: ...
在\操作之前(:查找\项,{only:[:显示,:编辑,:更新,:销毁]})

单词前面带有
的单词只是符号 后面有符号的是带有值的符号

before_action(:find_item, {only: [:show, :edit, :update, :destroy]})

<%= link_to("Delete", item_path(@item), {method: :delete, data: { confirm: "Are you sure?"}}) %>
在此示例中,
方法的值为(空)符号
:delete

这就相当于把它写成
{:method=>:delete}

在单词前面加
的单词只是符号 后面有符号的是带有值的符号

before_action(:find_item, {only: [:show, :edit, :update, :destroy]})

<%= link_to("Delete", item_path(@item), {method: :delete, data: { confirm: "Are you sure?"}}) %>
在此示例中,
方法的值为(空)符号
:delete

实际上,这相当于将其写成
{:method=>:delete}

。您可以使用标准的哈希表示法(
:only=>[…]
)使其更加清晰。您可以使用标准的哈希表示法(
:only=>[…]
)使其更加清晰。