Rails在使用CanCan gem进行授权时,模型/数据库应该如何?

时间:2011-10-19 14:38:37

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

我正在使用设计作为授权。并且想知道模型和数据库应该如何。在这篇ailscasts剧集http://railscasts.com/episodes/192-authorization-with-cancan中,Ryan表示他在角色和用户之间使用了多对多。

我的用户模型:'

class User < ActiveRecord::Base
has_and_belongs_to :roles
has_many :posts
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
end

我的角色模型:

class Role < ActiveRecord::Base
has_and_belongs_to :users
end

但角色表怎么样?

我在想创建角色表,如:

id
admin - Boolean
moderator - Boolean
author - Boolean 

然后是表roles_users:

id 
role_id
user_id

但是为什么用户应该有很多角色呢?什么时候有布尔?

1 个答案:

答案 0 :(得分:0)

角色表只是:

id
role_name

这样您就可以在不更改架构的情况下添加角色。