#!ruby
class Car < ActiveRecord::Base
belongs_to :user
end
@cars = Car.where(:user_id => current_user.id).limit(10)
我想创建一个范围,如何在范围内使用关联:user?
(Rails3中)
答案 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)