如何在 has_many 关联中使用 Lambda

Sig*_*Sig 3 ruby ruby-on-rails-4

我正在尝试将在 Ruby 1.9.3 上运行的 Rails 应用程序升级到 Rails 4.2.0,但更新关联时遇到了困难。

这是我认为我应该使用的代码

has_many :current_roles, -> (role){ where(job_id: role.id)}, class_name:'Role'
Run Code Online (Sandbox Code Playgroud)

我在几乎所有有关关联和 Rails 4.2 的响应中都看到了 lambda 的相同用法。

然而我得到的是syntax error, unexpected '}', expecting keyword_end

我错过了什么吗?

谢谢

Jes*_*per 5

在 Ruby 中1.9.3,stabby lambda 中的箭头和参数括号之间不能有空格。所以,它应该看起来像这样:

has_many :current_roles, ->(role) { where(job_id: role.id)}, class_name:'Role'
Run Code Online (Sandbox Code Playgroud)

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