Является ли слово с символами справа решёткой?

In

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

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

Я не уверен, что слова с символом справа:

only: ...

method: ..., data: ...

представляет собой. Я понимаю, что это параметры методов, но если это были хеш-ключи, то не знаю, почему нет фигурных скобок.


person Robert    schedule 30.07.2017    source источник


Ответы (2)


Когда вы используете хеш в качестве последнего аргумента для метода, Ruby позволяет вам опускать фигурные скобки, что делает списки аргументов более красивыми. Эти звонки переводятся в

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

<%= link_to("Delete", item_path(@item), {method: :delete, data: { confirm: "Are you sure?"}}) %>
person Ursus    schedule 30.07.2017
comment
Верно. Вы можете использовать стандартную хеш-нотацию (:only => [...]), чтобы сделать ее еще более понятной. - person Eric Duminil; 31.07.2017

слова с : перед словом являются просто символами те, которые стоят после него, являются символом со значением

method: :delete

в этом примере method имеет значение (пустого) символа :delete это было бы эквивалентно написанию его как { :method => :delete }

person TuffK    schedule 01.08.2017