rails3是否可以创建没有约束的model.scope

时间:2010-09-13 16:14:42

标签: activerecord ruby-on-rails-3

我正在尝试在我的模型上创建一个范围,将可用结果限制为仅由用户的合作伙伴拥有的结果。但是,当用户是管理员时,我希望所有模型都可用。 这有效,但看起来很愚蠢。什么是正确的rails3表达方式?

scope :accessible_by, proc { |user|
  if user.admin?
    where("1=1")
  else
    where(:owner_id => user.partner.id)
  end
}

我希望能够做的是进一步选择,例如

@models = MyModel.
            accessible_by(current_user).
            other_scope.
            where(:property => value).
            order("another_property desc").
          all

1 个答案:

答案 0 :(得分:1)

您可以使用all修饰符。

scope :accessible_by, proc { |user|
  if user.admin? == false
    where(:owner_id => user.partner.id)
  end
}