如果我只想返回已發佈但未到期的提案,這對於評論家來說有可能嗎?已批准但未過期的專家範圍條件
到目前爲止,我有這樣的:
class ProposalPolicy < ApplicationPolicy
class Scope < Scope
def resolve
if @user.admin?
scope.all
else
scope.where(published: true)
end
end
end
...
end
一個解決是我的建議控制器的index
行動編寫額外的代碼來進一步篩選提案情況的列表中上下對非過期的建議。
我希望有一些神奇的語法是這樣的:
scope.where({published: true, expire_date > Time.now })
任何想法? :d
是的,似乎我沒有足夠的谷歌,我發現這個網頁:https://stackoverflow.com/questions/8457902/how-to-指定-a-less-than-today-condition-on-a-date-in-rails-active-record看起來像scope.where()迭代ActiveRecord關係,所以語法是無論ActiveRecord關係是什麼(我曾經想過這是一些沒有文件的黑盒子:D) – Zhang
沒有文件?? !!!! http://guides.rubyonrails.org/active_record_querying.html Rails是非常有據可查的。 –
是的,我現在開悟了。我不知道Pundit的'scope.where'實際上是ActiveRecord關係,所以整個過程中我一直在摸索我的頭並檢查Pundit的Github頁面以查看關於多個子句的額外文檔。在Pundit Github頁面上,它是一個單一的重點,可以很容易地忽略它:P – Zhang