2012-04-01 64 views
0

我碰到一些路線是遵循了這一格式跑:軌道路線,只是沒有符號

resources :foobar, except: "create" 

我只是想知道它是如何工作有「除」,而不是符號「:除」我看到在大多數文檔。

在這種情況下實際發生了什麼?它是否調用一個名爲「except」的方法?結腸是做什麼的?

回答

2

Ruby 1.9的支持JavaScript的十歲上下的哈希語法,因此這樣的:

resources :foobar, except: 'create' 

是一樣的:

resources :foobar, :except => 'create' 

新的語法有limitations不過:

  1. 的哈希鍵必須是一個符號。
  2. 關鍵不能是你通常會引用的東西,所以你不能用它來代替:'this.that'這樣的符號。
  3. 你不能將它用於符號,如:$set(如果你使用的是MongoDB,它會出現在整個地方)。

我不知道確切的限制是什麼,因爲我不使用它(我做的MongoDB工作的公平一點,我有一致性的事),但我認爲這些符號需要匹配/^[a-z_]\w*/i(或者在技術上,任何可以用作標籤的東西)與新格式一起使用。