我在 Rails 3.2 项目中使用 devise 和 cancan 。我有一个event模型与一个
布尔标志public。如果事件被标记为公开 => 真实那么我希望任何人,无论登录还是无法访问记录
GET /events/:id
如果它被标记为公共 => 假那么一系列的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
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)