我已使用下面的链接使用active_admin实现了cancan。 https://github.com/gregbell/active_admin/wiki/How-to-work-with-cancan
就我而言,唯一的变化就是编写代码。 应用程序/模型/ ability.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= AdminUser.new # guest user (not logged in)
if user.id == 1
can :manage, :all
puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> manage all"
else
can :read, :all
puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> read all"
end
end
end
现在只需将条件放在user.id上。 因此,当我运行我的应用程序时,我可以看到我的投注正确登录。
问题:
(简而言之,我可以:代码在任何情况下都不起作用)
使用rails 3.1.1,cancan 1.6.7,activeadmin 0.4.4,ruby 1.9.3
正确连接后续命令,双重检查。
在AdminUser中使用authorize_resource。
使用socery not design,这会影响康康吗?
答案 0 :(得分:1)
我在/ admin
中的每个模型的代码中编写以下代码然后我的能力模型的条件开始工作。
menu :if => proc{ can?(:manage, #ModelName) }
controller.authorize_resource
在发布此问题之前,我只在管理员用户
中编写了上述代码