ruby-on-rails – 什么是绕过特定记录的公开授权的最佳方法

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 什么是绕过特定记录的公开授权的最佳方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Rails 3.2项目中使用devise和cancan.我有一个事件模型
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
  }

猜你在找的Ruby相关文章