0
我想在我的模型上創建一個範圍,將可用結果限制爲僅由用戶的合作伙伴擁有的結果。但是,當用戶是管理員時,我希望所有模型都可用。 這工作,但看起來很愚蠢。什麼是適當的rails3表達方式?rails3是否有可能創建一個沒有限制的model.scope
scope :accessible_by, proc { |user|
if user.admin?
where("1=1")
else
where(:owner_id => user.partner.id)
end
}
我希望能夠做的是選擇進一步做e.g
@models = MyModel.
accessible_by(current_user).
other_scope.
where(:property => value).
order("another_property desc").
all
不知道#all。謝謝! – 2010-09-13 17:52:17
儘管觸發查詢,並不讓我進一步 – einarmagnus 2010-09-13 20:45:28
甚至不需要所有。只是不指定其他條件。所有命名的作用域只是在ActiveRecord對象內激發一個方法。例如,如果user.admin? ==假,那麼你想要觸發where方法...否則你不需要在任何where子句上加上。 – davydotcom 2010-09-14 18:26:31