Hola a todos,
estoy desarrolando un sistema de tickets multi-usuario, para ello he
utilizado acts_as_authenticated para generar el modelo User.
La idea es que un usuario (empresa) se registre en la página y pueda
crearse todos sus agentes (tecnicos) que quiera. He utilizado herencia
para tener una mista tabla con Users y Agents:
create_table :users, :force => true do |t|
t.column :type, :string
type = User
t.column :time_zone, :string
t.column :subdomain, :string, :limit => 20
type = Agent
t.column :user_id, :integer
t.column :department_id, :integer
commont attributes
t.column :name, :string
t.column :login, :string
t.column :email, :string
t.column :crypted_password, :string, :limit => 40
t.column :salt, :string, :limit => 40
t.column :created_at, :datetime
t.column :updated_at, :datetime
t.column :remember_token, :string
t.column :remember_token_expires_at, :datetime
end
Ahora, cada usuario o agente puede introducir tickets (incidencias en la
DB)
create_table :tickets do |t|
t.column :created_by, :integer
t.column :subject, :string
…
end
El problema que tengo es:
- Cuando un ‘User’ se valide, tiene que ver sus tickets + los de todos
sus ‘Agents’ - Cuando un ‘Agent’ se valide, tiene que ver los tickets de su ‘User’ +
los suyos + los de otros ‘Agent’ que pertenezcan a su ‘User’
Yo pensé en algo como:
class Agent < User
belongs_to :user
has_many :tickets, :foreign_key => ‘created_by’
end
class User < ActiveRecord::Base
has_many :tickets, :foreign_key => ‘created_by’
has_many :tickets, :through => :agents
end
Pero esto no funciona, los Agentes solo ven sus tickets y el User ve los
de sus agentes, pero no los suyos.
¿Alguna idea?
Gracias.