2012-04-01 2 views
0

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

resources :foobar, except: "create" 

Я просто интересно, как он работал, чтобы иметь «кроме:» вместо символа «: кроме» как я вижу в большая часть документации.

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

ответ

2

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

resources :foobar, except: 'create' 

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

resources :foobar, :except => 'create' 

Новый синтаксис limitations хотя:

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

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

Смежные вопросы