如何在范围中引用belongs_to关联?

时间:2011-04-15 02:52:09

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

#!ruby
class Car < ActiveRecord::Base
  belongs_to  :user
end

@cars = Car.where(:user_id => current_user.id).limit(10)

我想创建一个范围,如何在范围内使用关联:user?

(Rails3中)

2 个答案:

答案 0 :(得分:3)

所以,在你的模型中:

scope :foo, lambda {|u| where( :user_id => u ).limit(10) }

...然后您可以通过以下方式从控制器中调用:

Car.foo(current_user)

答案 1 :(得分:0)

尝试:

Car.join(:user).where(:user_id => current_user.id).limit(10)

更新

在您的模型中

def self.with_user(user)
  join(:user).where(:user_id => user.id)
end
控制器中的

Car.with_user(current_user).limit(10)