Ruby on Rails: что означает символ =>?

Я работаю через Head First Rails, и я продолжаю видеть =>. Это в маршрутах:

map.connect '/marmots/new', controller=>'marmots', :action=>'new'

Это в частичном рендеринге:

render :partial=>"new_marmot"

В настройках ссылок:

<%= link_to 'Destroy', marmot, :confirm=>'Are you sure?', :method=>:delete %>

В принципе, => означает "равно", но если да, почему бы просто не использовать знак равенства? Это больше похоже на "отправить?"

Как вы говорите = > и что вы понимаете под этим? Я могу обойтись, не зная об этом, но меня это беспокоит.

Ответы

Ответ 1

Ваш первый вызов функции - это ярлык для

map.connect('/marmots/new', {:controller=>'marmots', :action=>'new'})

где {} - Хэш-литерал. Второй аргумент метода connect map объекта - это объект класса Hash с двумя ключами: controller и: action (оба являются литералами класса Symbol), соответствующими значениями которых являются сундуки "сурки" и "новые".

EDIT: Я называю это "стрелка" или "карта".

Ответ 2

Я слышал, что его обычно называют "хеш-ракетой". Это оператор присваивания, используемый с хешами в рубине. Поэтому, если у вас есть хеш и вы хотите присвоить значение ключу (как правило, литералу), используйте

{key1 => value1, key2 => value2}

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

object.method({:param1 => value1, :param2 => value2})

EDIT: при чтении я использую "get" в качестве глагола, например. param1 получает значение1 и т.д.