给定一个带有属性“date”的Rails模型“Widget”,是否可以在CanCan动作授权上设置一个条件,要求日期晚于当前时间? documentation显示了如何为数字属性指定范围:
can :read, Project, :priority => 1..3
...但目前尚不清楚这将如何适用于另一种类型的开放式范围(例如“> Time.now”):
can :some_action, Widget, :date => "????"
答案 0 :(得分:1)
您可以为条件定义块
can :some_action, Widget do |widget|
widget.date.to_time > Time.now
end
如果该块返回true,则该用户具有该能力,否则将被拒绝访问。
有关详细信息,请参阅this