que sigo http://railscasts.com/episodes/102-auto-complete-associationRails 3 find_or_create_by
todo parece estar bien. Estoy intentando crear una factura y también un cliente sobre la marcha. Funciona. Todo bien.
cliente belongs_to cuenta factura belongs_to cuenta factura belongs_to cliente
peeero, ambos modelos (cliente y factura) tiene un atributo obligatorio: account_id.
Cuando estoy tratando de crear un nuevo cliente sobre la marcha me sale un error :client_id: - can't be blank
La razón por la que estoy recibiendo este error es debido a que un cliente no se puede crear porque es que requiere una account_id en el Modelo de cliente Si elimino esta línea validates :account_id, :presence => true
en el modelo de Cliente, la factura se agrega pero el Cliente no tiene account_id.
tengo esto en clients_controller.rb en la acción create para establecer un valor por defecto @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
La cuenta ya está creada. El usuario que inició sesión ya tiene un account_id y se puede acceder de esta manera 'current_user.account_id'. El problema es obtener ese mismo account_id en el nuevo registro del cliente. Voy a jugar con tu código ahora mismo. – leonel
Tengo esto en mi modelo de factura 'def organization_name = (name); self.organization = Organization.find_or_create_by_name (name); a menos que name.blank ?; end' No se puede acceder al usuario_actual en un modelo. – leonel
si crea el nuevo registro del cliente a partir del registro de la cuenta, heredará su account_id ... ver más arriba. – Tilo