如何构建一个将第一个关系传回的范围

时间:2012-05-18 13:10:46

标签: ruby-on-rails ruby-on-rails-3

好的,我有用户和公司,并且在多对多的关系中有一个联接表

我可以做到

@user.companies

我可以做一个传回第一家公司的范围

我把它绑在用户模型中

 scope :first_company, includes(:companies_users).where(:user_id => self.id).first

这失败了....任何建议

更新

我有这个也会工作,但我想知道是否有一个等效的范围

 def company
   self.companies.first
 end

1 个答案:

答案 0 :(得分:1)

您需要将范围定义为lambda,因为范围中的self的上下文将是类而不是实例。

请参阅此SO文章,了解如何执行此操作。

Ruby Lambda and Scope