2
@teammates = Roster.all.sort_by(&:level)
失敗:
@teammates = Roster.all.sort_by(:level)
什麼是&盈的:水平呢?它是否像C++一樣引用?
預先感謝
@teammates = Roster.all.sort_by(&:level)
失敗:
@teammates = Roster.all.sort_by(:level)
什麼是&盈的:水平呢?它是否像C++一樣引用?
預先感謝
的&symbol
符號是由導軌增加了一些語法糖。它被稱爲to_proc的符號,可用於任何期望接收Proc的方法。
Array.sort_by需要一個proc,這就是爲什麼只傳遞符號失敗。符號to_proc語法安排接收者,在這種情況下,sort_by接收包含proc內調用的方法名稱的proc。
@teammates = Roster.all.sort_by(&:level)
是相當於
@teammates = Roster.all.sort_by{ |obj| obj.level }
如何Rails的增加這句法? – panzi 2011-02-10 17:25:56