Имея модель счета-фактуры, которая принадлежит пользователю, и пользовательскую таблицу, которая ассоциирует пользователь в качестве определенной роли или нескольких ролей:Rails - один пользователь несколько «ролей»?
class CreateInvoices < ActiveRecord::Migration
def self.up
create_table :invoices do |t|
t.string :po_number
t.datetime :invoice_date
t.datetime :date_received
t.datetime :date_approved
t.text :clerk_note
t.integer :clerk_id
t.integer :approver_id
t.text :approver_note
end
end
class Invoice < ActiveRecord::Base
belongs_to :user
end
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :first_name
t.string :last_name
t.string :username
t.string :email
t.boolean :account_clerk
t.boolean :approver
t.boolean :admin
end
end
class User < ActiveRecord::Base
has_many :invoices
end
В записи счета-фактуры, как я Назначаю clerk_id и approver_id в зависимости от того набор ролей в пользовательской модели? В каждом счете есть клерк и утверждающий, но оба являются пользователями.
Аналогично, как назначить clerk_note для clerk_id и approver_note для approver_id? Я предполагаю в этом случае, я могу просто обратиться к current_user, так как пользователь, входящий в систему, будет тем, кто делает заметку, верно?
Я не уверен, что это называется, поэтому в моем Googling я не знал, что искать ... заблаговременно за вашу помощь.
Вы могли бы на самом деле хотите, чтобы разделить клерк и утверждающие столбцы из таблицы счетов и создать таблицу invoice_users, которая имеет следующие столбцы: invoice_id, user_id, примечание, роль. Не уверен, что один и тот же пользователь может быть как утверждающим, так и клерком в вашей системе. –
Спасибо за эту идею - да, пользователь может быть либо или и тем, и другим, утверждающим/клерком. Я могу использовать этот подход ... спасибо. –