2012-12-31 43 views
0

這一個工程散列符號的新風格

items = Item.where(:item_id.in => items.map(&:id)) 

不像這兩個

items = Item.where(item_id:.in items.map(&:id)) 
items = Item.where(item_id.in: items.map(&:id)) 

有什麼辦法來「舊式紅寶石散」的第一個表達式轉換爲「新風格紅寶石哈希「符號?

+0

我對此感到困惑。 :item_id.in不是一個有效的符號字面量,甚至在rails中,加載了所有的monkeypatches,在符號上沒有方法。你確定頂級的工作? – tehgeekmeister

+0

@tehgeekmeister它是有效的語法艱難。 ':item_id.in'是一個方法調用符號對象':item_id'的'in',並且[看起來](http://ideone.com/DsdP2E),您可以使用它作爲舊樣式的散列鍵。也許OP使用一些庫來定義符號或類似的方法。 – epidemian

+0

是的,它是有效的語法,但不是有效的符號文字。如果有某個庫向Symbol添加in,那麼問題應該指定。 – tehgeekmeister

回答

2

不,沒有。只有當密鑰可以寫爲符號字面量時,散列的{key: value}符號纔可用。