在rails3中使用CanCan和user_role表

时间:2012-11-23 09:19:39

标签: ruby ruby-on-rails-3 authorization cancan

我有这样的user_role表:

user_role_id (pk)
name (e.g admin)
access_one
access_two
acccess_three

和user_table,其中包含以下列:

user_id (pk)
user_role_id (fk)
username
password

我有权通过管理面板创建上述users_roles。 那我该如何使用命名角色呢?这样我就可以在cancan&amp ;;中获得Role Inheritance的好处我也希望角色名列表保持与数据库同步。
此外,我希望根据access_one,access_two等在ability.rb中设置访问权限。在user_role table.so中定义,我该如何实现?

1 个答案:

答案 0 :(得分:0)

最好看的地方是

Cancan-ability

Cancan有一个非常好的文档。只是通过它会非常有帮助。

编辑:

      user ||= User.new # guest user (not logged in)
        if user.admin?
          can :manage, :all
        elsif user.student?
          can :manage, [Book, Copies]
          can :manage, Theme
        else  
          can :read, :all
        end

      end

你可以使用can而不能照顾权限。喜欢

can :manage, Model_name, Action_name 

这将确保特定模型与特定视图的权限一起考虑。