#ruby-on-rails #ruby #ruby-on-rails-3 #cancan
#ruby-on-rails #ruby #ruby-on-rails-3 #cancan
Вопрос:
Я использую devise в качестве авторизации. И вам интересно, какими должны быть модель и база данных. В этом эпизоде ailscasts http://railscasts.com/episodes/192-authorization-with-cancan Райан говорит, что он использует соотношение «многие ко многим» между ролями и пользователями.
Моя пользовательская модель:’
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
И затем таблица role_users:
id
role_id
user_id
Но почему у пользователя должно быть много ролей? При наличии логических значений?
Ответ №1:
Таблица ролей будет просто:
id
role_name
Таким образом, вы можете добавлять роли без изменения схемы.