2015-08-28 46 views
1

我正在嘗試將Ruby 1.9.3上運行的Rails應用升級到Rails 4.2.0,並且我很難更新關聯。如何在has_many關聯中使用Lambda

這裏的代碼,我想我應該用

has_many :current_roles, -> (role){ where(job_id: role.id)}, class_name:'Role' 

我已經看到了同樣的使用lambda的基本上都與協會和Rails 4.2在這裏的響應。

但是我所得到的是syntax error, unexpected '}', expecting keyword_end

我缺少的東西?

感謝

回答

4

在Ruby 1.9.3,你不能有箭頭,在stabby拉姆達參數括號之間的空間。所以,它應該看起來像這樣:

has_many :current_roles, ->(role) { where(job_id: role.id)}, class_name:'Role' 

如果可能,請使用更新版本的Ruby。不再支持1.9.3

+0

謝謝。一旦升級到Rails 4.2,我計劃遷移到Ruby 2.2.3。 – macsig