Tengo un modelo Bill
con modelo anidado Customer
. El modelo Customer
tiene un número de teléfono con una validación de exclusividad. Al crear la factura, quiero recuperar el registro existente según el número de teléfono o crear uno nuevo, si no existe. ¿Cómo debo hacerlo de una manera RESTful
?Ruby on rails - atributos anidados: Cómo hacer un encontrar o crear del modelo anidado
Respuesta
Puede ver los métodos find_or_create o find_or_create_by (que se crean dinámicamente). Un poco de Google debería llevarte allí el resto del camino, creo.
que utilizaría el método find_or_create_by la que sería algo como esto en su caso:
fetchedRecord = Bill.find_or_create_by_phone_number(customer.phone_number)
No parece como estas respuestas son lo que están pidiendo.
Olvídate de Rails, mi pregunta sería, ¿cuál es la forma RESTANTE de crear un recurso que ya podría existir? ¿Deberías POSTAR a la URL de recursos (lista) y luego esperar un código de estado HTTP de 201 si el recurso fue creado y un 200 si ya existió?
Parece que esto debería describirse en un estándar en alguna parte.
Por cierto, así es como lo estoy manejando, con códigos de estado.
coloco mina en la devolución de llamada de la asociación before_add
Por favor coloque los comentarios en la sección de comentarios. –
- 1. Ruby on Rails - atributos anidados: ¿Cómo accedo al modelo padre del niño modelo
- 2. Ruby on Rails Plural Nombre del modelo
- 3. Ruby on Rails: ámbitos con nombre anidados
- 4. Diseños anidados en ruby on rails
- 5. Anidado Incluye en Ruby on Rails 3
- 6. Ruby on Rails - Variable del controlador de acceso del modelo
- 7. Ruby on Rails - Completo conjunto de complementos anidados
- 8. Ruby on Rails Layout leyendo datos del modelo
- 9. Ruby on Rails: ¿cómo validar un modelo sin registro activo?
- 10. Django o Ruby on Rails
- 11. Ruby on Rails: cómo verificar si el modelo existe
- 12. Crear archivo descargable en Ruby on Rails
- 13. ¿Cómo hacer un formulario que no sea modelo en ruby on rails?
- 14. Atributos anidados en Rails 3
- 15. Ruby on Rails 3 - a_json sin incluir todos los atributos
- 16. Acceso a current_user desde un modelo en Ruby on Rails
- 17. Funda/interruptor Ruby on Rails. ¿Cómo hacer coincidir el objeto?
- 18. Ruby on Rails - cálculo before_save en accepts_nested_attributes_for
- 19. Validación de atributos virtuales en Ruby on Rails
- 20. ¿cómo puedo hacer autorreferencia con ruby on rails?
- 21. Ruby on Rails: Cómo ordenar un collection_select
- 22. ¿Cómo crear un nuevo entorno en Ruby on Rails?
- 23. Ruby on Rails 3 y cómo hacer un servicio web
- 24. Rails anidados con has_many: a través de, ¿cómo editar los atributos del modelo join?
- 25. Ruby vs. Ruby on Rails
- 26. Ruby on Rails: Crear correctamente una instancia de modelo que tenga relación con varios modelos
- 27. ¿Es posible anotar solo un modelo en Ruby on Rails?
- 28. ¿Cómo serializar el modelo anidado en rieles?
- 29. Ruby on Rails enviar
- 30. Ruby on Rails Switch
En una posterior investigación y googlear descubrí que podía añadir una: clave de identificación a los customer_attributes y rieles actualiza el registro en lugar de crear una nueva. En otras palabras, tengo que emitir un customer_attributes [: id] = find_by_phone (customer_attributes [: phone]). Id Lo que no entiendo (todavía) es qué gancho del ciclo de vida del modelo (antes/después, validar/guardar) o incluso uno que modelo (cliente/factura) debería hacer esto. La solución parece ser bastante trivial en este caso, pero se vuelve complicada en campos profundamente anidados. – TMaYaD