我在Rails 3.2项目中使用devise和cancan.我有一个事件模型
boolean flag public.如果事件被标记为public =>真的,我想要任何人登录或不能访问记录
boolean flag public.如果事件被标记为public =>真的,我想要任何人登录或不能访问记录
GET /events/:id
如果它被标记为public =>然后一系列cancan能力将决定授权和访问上述资源.
实现这一目标的最佳方式是什么?
解决方法
你可以通过跳过authenticate_user来做到这一点!如果你有这个意见
skip_before_filter :authenticate_user!,:only => :show,:if => lambda { if params[:id] @event = Event.find(params[:id]) @event and @event.public? else false end }