Sto seguenti http://railscasts.com/episodes/102-auto-complete-associationRails 3 find_or_create_by
tutto sembra bene. Sto cercando di creare una fattura e anche un cliente al volo. Funziona. Tutto a posto.
cliente belongs_to conto fattura belongs_to conto fattura belongs_to cliente
Buuut, entrambi i modelli (client e fattura) hanno un attributo obbligatorio: ACCOUNT_ID.
Quando sto cercando di creare un nuovo cliente al volo ottengo un errore :client_id: - can't be blank
Il motivo sto ottenendo questo errore è perché un cliente non può essere creato perché è che richiede un ACCOUNT_ID nel Modello del cliente Se rimuovo questa riga validates :account_id, :presence => true
nel modello Client, la fattura viene aggiunta ma il Cliente non ha account_id.
io ho questo clients_controller.rb nell'azione creare per impostare un valore predefinito @client.account_id = current_user.account_id
invoice.rb
validates :account_id, :presence => true
validates :client_id, :presence => true
def client_name
client.name if client
end
def client_name=(name)
self.client = Client.find_or_create_by_name(name) unless name.blank?
end
L'account è già stato creato. L'utente che ha effettuato l'accesso ha già un account_id e può accedere come questo 'current_user.account_id'. Il problema è ottenere lo stesso account_id nel nuovo record del client. In questo momento giocherò con il tuo codice. – leonel
Ho questo nel mio modello di fattura 'def organization_name = (name); self.organization = Organization.find_or_create_by_name (name); a meno che name.blank ?; fine' Non è possibile accedere a current_user in un modello. – leonel
se crei il nuovo record del client a partire dal record dell'account, erediterà il suo account_id ... vedi sopra. – Tilo