Sono un po 'confuso su come funziona anche se funziona correttamente. Ho un modello che ha due associazioni con lo stesso modello.has_one e has_many nello stesso modello. Come li rintraccia i binari?
La società ha un proprietario e un'azienda ha molti dipendenti degli utenti della classe.
qui è il mio modello di società:
class Company < ActiveRecord::Base
validates_presence_of :name
has_many :employee, :class_name => 'User'
has_one :owner, :class_name => 'User'
accepts_nested_attributes_for :owner, :allow_destroy => true
end
qui è il mio modello di utente:
class User < ActiveRecord::Base
include Clearance::User
attr_accessible :lastname, :firstname #other attr are whitelisted in clearance gem
validates_presence_of :lastname, :firstname
belongs_to :company
end
Ora assumendo ho 3 dipendenti di questa azienda compreso il proprietario. Quando creo la società, per prima cosa imposto il proprietario al dipendente con ID 1 e gli altri due (2,3) vengono aggiunti all'elenco dei dipendenti impostando il proprio company_id (user.company = company). Tutti e tre hanno il loro company_id impostato sull'id dell'azienda che possiamo assumere è 1
quando chiedo per company.owner, ottengo l'utente giusto e quando faccio company.employee, ottengo tutti e tre.
Se cambio il proprietario in utente 2, rimuove automaticamente l'utente 1 dai dipendenti impostando it_azienda su nil. Questo va bene e se lo ricollego come semplice impiegato tutto è ancora buono.
Come diavolo le guide sanno quale è quale? Quello che voglio dire è come fa a sapere che un dipendente è proprietario e non solo un dipendente? Niente nello schema lo definisce.
Ho la sensazione che dovrei invertire l'associazione dei proprietari e rendere l'azienda appartenente a un utente.
Terminato facendo questo e sul lato utente, ho fatto appartiene a: datore di lavoro,: class_name => "Azienda" che dovevo fare per prevenire un conflitto con user.company, ora user.company è la società e la società di proprietà .employer is ... hai capito il punto: P – nkassis