Par exemple, j'ai un modèle product
. Chaque produit a un type
nommé ProductType
. Maintenant, je veux créer un produit.Rails: formulaire_for avec sous-modèle pour la sélection de l'utilisateur
Voici ma forme simple à l'aide mince:
= form_for @product, url: product_path, :html => {:method => post} do f
= f.label :name
= f.text_field :name
= f.submit 'Create'
Je veux sous cette forme, il y a une liste déroulante qui liste tous les types de produits (charge de ProductType
) et l'utilisateur peut choisir un. Comment puis-je faire cela dans des rails (en utilisant form_for
)
grâce
merci beaucoup. J'ai un peu plus de question. Dans mon produit, j'ai deux champs: 'type_id' et' type_name' (pour empêcher la table 'ProductType' de la requête). Comment puis-je faire comprendre 'form_for' et envoyer respectivement les champs' id' et 'name' de ProductType' vers les champs de la table' Product'. (donc je n'ai pas besoin de demander à nouveau 'ProductType' pour obtenir le nom de l'ID). merci –
Je recommande d'afficher ceci comme une question distincte afin que tout le monde puisse en bénéficier. En bref, je recommande d'utiliser un rappel 'before_save' dans le modèle' Product' pour définir 'name'. Heureux d'élaborer sur un poste séparé si vous souhaitez –
et encore une chose. Comme je l'ai lu dans le document, ils utilisent quelque chose comme: 'collection_select (: post,: id_auteur, Author.all,: id,: name_with_initial, prompt: true)'. Donc, dans mon cas, il devrait être: 'f.collection_select: produit,: type, ProductType.all,: nom,: id'. Mais quand je fais cela, je rencontre l'erreur: 'méthode non définie' fusionner 'pour: name: Symbol'. merci –