如何在has_many关联中使用Lambda

时间:2015-08-28 06:35:21

标签: 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'

我已经在基本上所有关于关联和Rails 4.2的响应中看到了lambda的相同用法。

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

我错过了什么吗?

由于

1 个答案:

答案 0 :(得分:4)

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

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

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