J'ai un modèle Bill
avec le modèle imbriqué Customer
. Le modèle Customer
possède un numéro de téléphone avec une validation d'unicité. Lors de la création de la facture, je souhaite récupérer l'enregistrement existant en fonction du numéro de téléphone ou en créer un nouveau si ce dernier n'existe pas. Comment dois-je le faire de manière RESTful
?Ruby on rails - attributs imbriqués: Comment faire une recherche ou créer un modèle imbriqué
Répondre
Vous pouvez consulter les méthodes find_or_create ou find_or_create_by (qui sont créées dynamiquement). Un peu de googling devrait vous permettre d'y arriver le reste du temps, je pense.
vous utilisez la méthode find_or_create_by qui ressemblerait à quelque chose comme ceci dans votre cas:
fetchedRecord = Bill.find_or_create_by_phone_number(customer.phone_number)
Il ne semble pas que ces réponses sont ce que vous demandez. Oubliez Rails, ma question serait, quelle est la façon RESTful de créer une ressource qui pourrait déjà exister? Devriez-vous POSTER à l'URL des ressources (liste), puis attendre un code d'état HTTP de 201 si la ressource a été créée et un 200 s'il existait déjà?
Il semble que cela devrait être précisé dans une norme quelque part. Au fait, c'est ainsi que je le manipule - avec des codes d'état.
Je moi place dans le rappel de l'association before_add
Veuillez placer des commentaires dans la section des commentaires. –
- 1. Comment faire une recherche OR SQL avec Ruby on Rails?
- 2. rails attributs imbriqués
- 3. Comment faire une recherche de notices avec ruby on rails?
- 4. Ruby on Rails/MySQL: comment faire une recherche sur un tableau en utilisant OU?
- 5. Ruby on Rails: Existe-t-il un moyen d'utiliser des attributs imbriqués pour un système wiki?
- 6. Un ou plusieurs paramètres dans les conditions de recherche de modèle avec Ruby on Rails
- 7. Ruby on Rails modèle emboîtées
- 8. Comment créer ce formulaire Ruby on Rails?
- 9. Créer un lien avec Ruby on Rails
- 10. Ruby on Rails: Un moyen simple de sélectionner tous les enregistrements d'un modèle imbriqué?
- 11. Rails 2.3 attributs imbriqués problème
- 12. Ruby on Rails, modèle Rejoint
- 13. Recherche dans Ruby On Rails
- 14. Rails Attributs imbriqués Erreur d'affectation de masse
- 15. Ajouter un ID ou une classe dans Ruby on Rails?
- 16. et ou opérateur dans validates_presence_of d'un modèle Ruby on Rails
- 17. Ruby Rails Enregistrements imbriqués
- 18. Ruby on Rails, ActiveRecord, Recherche binaire
- 19. Tri des attributs profondément imbriqués dans Rails
- 20. Comment faire en Ruby on Rails
- 21. Attributs de filtrage Ruby on Rails sur un objet modèle retourné
- 22. Comment utiliser un modèle sans contrôleur dans Ruby on Rails?
- 23. refactoring Modèle Méthodes en Ruby On Rails
- 24. Comment créer un plugin Ruby on Rails configurable?
- 25. Catégorisations pour Ruby on Rails (ou tags)
- 26. Attributs inconnus sur un formulaire imbriqué dans Rails
- 27. Comment afficher un modèle .builder dans ruby on rails?
- 28. Créer un flexible, localisé, Ruby-on-Rails liste-des-valeurs
- 29. Modèle d'autorisation pour Ruby on Rails
- 30. Modèle Ruby on rails avec plusieurs parents
Sur d'autres recherches et googler j'ai découvert que je pouvais ajouter un: clé identifiant les customer_attributes et rails à jour l'enregistrement au lieu de créer un nouveau. En d'autres termes, je dois émettre un customer_attributes [: id] = find_by_phone (customer_attributes [: phone]). Id Ce que je ne comprends pas (encore) est sur quel crochet dans le cycle de vie du modèle (avant/après, valider/enregistrer) ou même quel modèle (client/facture) devrais-je faire. La solution semble être assez triviale dans ce cas mais elle devient compliquée dans les champs profondément imbriqués. – TMaYaD