我们如何在不登录的情况下使用康康宝石?

时间:2014-03-25 07:08:13

标签: ruby-on-rails cancan

我正在尝试为不必登录以获取某些服务的访问者设置cancan权限。为了澄清这一点,例如: -

我有一个搜索控制器,它有新的搜索操作。在相关的新查看器中有一些链接,其中一些我不希望被非登录用户看到,其他人必须为他们看到!..

我试图在控制器搜索中写下这些行: -

before_filter :authenticate_user! # this forces the user to log-in ( I don't want this )
load_and_authorize_resource # this doesn't work without authenticate_user
before_filter :load_permissions

在新视图中我写了这个

<%= link_to "Listing Managment", extras_path if can? :index, Role %>

但由于(可以?)

,它给我带来了错误
  

提示:当我在过滤器之前移除控制器3时出现错误   以上。但是当我把它们放进去时仍然不方便。

1 个答案:

答案 0 :(得分:2)

在您的cancan初始化程序中,您可以使用类似

的内容

user = current_user || User.new

这样cancan会接收当前用户(可能有角色),如果没有current_user(你没有登录),将返回一个没有活动角色的虚拟用户记录(匿名用户)。

相关问题