【问题标题】:Cancan and devise not working康康和设计不起作用
【发布时间】:2012-07-29 19:28:51
【问题描述】:

我已经修改了我的设计表用户,以便有一个许可列。此列是一个数字 (1-3),表示用户的权限(读、读/写、完全控制)。与我正在阅读的所有示例不同,my Clearance(示例中的角色)不是具有关系的单独表,而是设计表(用户)中的自己的列。它的默认值为 1。

我的能力.rb 是这样的:

 class Ability
 include CanCan::Ability

  def initialize(user)
    user ||= User.new # guest user (not logged in)
    if user.clearance.equal?("2")
      can :create, Post
      can :manage, Post, :user_id => user.id
    else
      can :read, :all
    end
  end

end

我已经从我见过的其他示例中写下了这个(我真的是 Rails 新手,但除非绝对必要,否则尽量不寻求帮助),目的是让权限值为 2 的用户可以创建帖子并只管理他们的帖子。我还包括了这一点,因为我还没有编写 1 和 3 的代码,所以所有其他许可编号都可以读取所有内容。

然而,Cancan 显然认为我的用户(已确认许可级别为 2)属于“其他”条款,因此我只能阅读帖子。如果我尝试创建一个新页面,我会收到一条您无权访问此页面的消息。 我迷路了。帮忙?

【问题讨论】:

    标签: ruby-on-rails ruby devise cancan


    【解决方案1】:

    这可能是间隙列是整数吗?在这种情况下,你应该写user.clearance == 2,而不是你写的。

    【讨论】:

    • 就是这样。谢啦。就像我说的,我是新人。但我在学习。一旦 Stack 允许,我会检查你的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    相关资源
    最近更新 更多