carriles: crear padre, si no existe, mientras que la creación de registro hijo
-
01-10-2019 - |
Pregunta
Cualquier mejores prácticas para la siguiente:?
Tengo modelo del fabricante que has_many Inventario
En mi nueva forma de inventario Quiero un campo que se asigna a Manufacturer.name modo que cuando uno somete el nuevo formulario de inventario de la aplicación:
- búsquedas de un fabricante con el 'nombre' de la forma
- Si existe entonces asignar la identificación a @ inventory.manufacturer_id y ahorrar @inventory
- No se si lo hace existir a continuación, crear el fabricante con el 'nombre' de la forma, asignar el ID de @ inventory.manufacturer_id y guardar
- tiene validaciones de trabajo en el nuevo formulario de inventario
- tal que, si la forma del Inventario falla la validación en un campo que no sea 'nombre'
- el campo 'nombre' se vuelve a llenar con lo que el usuario ha introducido (pero un nuevo fabricante no se crea menos que la misma pasa la validación)
- tal que, si la forma del Inventario falla la validación en un campo que no sea 'nombre'
Solución
Usted puede tratar de esta manera:
class Inventory < ActiveRecord::Base
...
belongs_to :manufacturer
...
def manufacturer_name
manufacturer && manufacturer.name
end
def manufacturer_name=(value)
self.manufacturer = Manufacturer.find_by_name(value)
self.manufacturer ||= Manufacturer.new(:name => value)
end
...
end
En este caso, deberá campo de texto manufacturer_name de salida en forma de inventario.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow