Question

J'ai un formulaire à afficher pour une table ayant une relation avec quelques autres tables. Par exemple, j’ai un tableau "Cases" (pensez, cas d’enquêteur), qui a un demandeur et un client.

Je souhaite que le formulaire affiche les champs à renseigner pour les données de dossier, les données client et les données de demandeur. Existe-t-il un moyen simple de le faire pour que, une fois soumis, ce soit aussi simple que:

case = Case.new(params[:case])
case.save

Comme ce serait le cas si je ne faisais que soumettre et enregistrer un formulaire pour les données de cas uniquement?

Était-ce utile?

La solution

On dirait que vous recherchez la méthode includes_nested_attributes_for d’Activerecord. Vous devrez créer votre formulaire à l'aide de

- form.fields_for :claimant do |claimant_form|
  = claimant_form.text_field :name

Vous trouverez de plus amples informations dans Article de blog de Ryan Daigle

Autres conseils

Je ne crois pas qu'il soit possible d'appeler simplement case.save et que ça va marcher.

Pour créer le formulaire, examinez l'utilisation de fields_for. http://api.rubyonrails.org/classes/ActionView/Helpers/ FormHelper.html # M001605

fields_for vous permet d'ajouter des champs stockés dans différentes variables POST. Par conséquent, si vous configurez les champs correctement, vous pourrez éventuellement, dans votre nouvelle méthode, procéder de la manière suivante:

claimant = Claimant.new(params[:claimant])
claimant.save

Ce qui n'est pas terriblement plus compliqué.

Voir mes exemples de formulaires complexes sur la création de plusieurs éléments imbriqués. -modèles. Cela a été mis à jour pour fonctionner avec le Rois 2.3 accepte_attributs_autorités_pour .

Il vous permet d'imbriquer les associations sous params [: case] comme vous le souhaitez. Lorsque vous appelez case.save , tout le reste sera également sauvegardé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top