У пользователя может быть много ролей, но только одна роль для бренда.
Class User < AR::Base
has_and_belongs_to_many :roles, :join_table => "user_brand_roles"
has_and_belongs_to_many :brands, :join_table => "user_brand_roles"
end
Проблема с этой настройкой состоит в том, как проверить марку и роль одновременно?
Или мне лучше воспользоваться моделью BrandRole, в которой для каждого бренда можно установить разные роли, а затем назначить пользователя для BrandRole?
Пользователь класса : user_brand_roles end
Класс BrandRole
Таким образом, я мог бы найти для бренда марку для пользователя:
br = current_user.brand_roles.where(:brand_id => @brand.id).includes(:brand_role)
if br.blank? or br.role != ADMIN
# reject access, redirect
end
Это новое приложение, и я пытаюсь извлечь уроки из прошлых ошибок и придерживатьсяRails Way.Я делаю какие-то плохие предположения или проектные решения здесь?