рельсовые маршруты, кроме как без символа - PullRequest
0 голосов
/ 01 апреля 2012

Я столкнулся с некоторыми маршрутами, которые следовали этому формату:

resources :foobar, except: "create"

Мне было просто интересно, как это работает, чтобы иметь "кроме:" вместо символа ": кроме", как я вижу в большинстве документов.

Что на самом деле происходит в этом случае?Вызывает ли метод, называемый «кроме»?Что делает толстая кишка?

1 Ответ

2 голосов
/ 01 апреля 2012

Ruby 1.9 поддерживает синтаксис хэша JavaScript-ish, так что это:

resources :foobar, except: 'create'

такой же, как этот:

resources :foobar, :except => 'create'

Новый синтаксис имеет ограничения , хотя:

  1. Ключ хеша должен быть символом.
  2. Ключ не может быть чем-то, что вы обычно цитируете, поэтому вы не можете использовать его для таких символов, как :'this.that'.
  3. Вы не можете использовать его с такими символами, как :$set (которые появляются повсюду, если вы используете MongoDB).

Я не уверен, каковы точные ограничения, так как я не использую его (я делаю немало работы с MongoDB, и у меня есть кое-что для согласованности), но я думаю, что символы должны соответствовать /^[a-z_]\w*/i (или технически, все, что можно использовать в качестве метки) для использования в новом формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...