Все после application
на самом деле является хешем с символьными клавишами. В общем,
{foo: 'bar'}
эквивалентно
{:foo => 'bar'}
Если у вас есть строка с пробелами, дефисами и т. Д., Вам необходимо заключить ее в кавычки перед добавлением двоеточия; это то, что происходит с 'data-turbolinks-track':
.
Наконец, передавая аргументы методу, вы можете оставить фигурные скобки на внешней стороне хэша, если он однозначен. Это часто называют голым хешем.
Итак, ваши звонки фактически эквивалентны:
<%= stylesheet_link_tag 'application', {:media => 'all', :'data-turbolinks-track' => 'reload'} %>
<%= javascript_include_tag 'application', {:'data-turbolinks-track' => 'reload', :defer => "defer"} %>
Что касается того, какой синтаксис использовать, то это в основном вопрос стиля и читабельности, если только вы не используете более старые версии Ruby (до Ruby 1.9 синтаксис «ракета» с использованием =>
был единственным вариантом).