Как использовать enum для таблицы отношений?
У меня есть статичные данные с правами, мне не нужно их хранить в базе данных и создавать таблицу с разрешениями, я хочу использовать Enum
enum permission: [:show, :create, :update, :destroy]
Что нужно сделать в моделях, чтобы я мог при вызове использовать Enum для роли:
Role.first.permission
=>"create"
I have migration:
class CreateRoles < ActiveRecord::Migration
def change
create_table :roles do |t|
t.string :name
end
end
end
class CreateCompanies < ActiveRecord::Migration
def change
create_table :companies do |t|
t.string :name
end
end
end
class CreateCompaniesRoles < ActiveRecord::Migration
def change
create_table :companies_roles do |t|
t.integer :company_id
t.integer :role_id
t.integer :permission
end
end
end
Все связи многие ко многим.
Ответы (1 шт):
Автор решения: Василиса
→ Ссылка
В моем проекте это реализовано через разные роли, по типу
employee_admin
employee_manager
employee_viewer
И на мой взгляд это более простой вариант. Но если вы хотите так, то вам нужно будет искать CompanyRole по айдишнику пользователя и компания и смотреть в её permission
CompanyRole.find_by(company_id: record.id, user_id: user.id).permission