Rails 3 soumettre un formulaire avec plusieurs enregistrements
Je suis nouveau sur les rails donc c'est probablement une question de base. Je suis en train de créer un formulaire où l'utilisateur peut créer 3 dossiers à la fois. Je veux que l'utilisateur n'avez qu'à cliquer sur le bouton soumettre une fois. Je suis soumettre à mon modèle d'évaluation un nom, un commentaire et une notation. Actuellement, seul le dernier acte est inscrit dans la base de données.
<%= form_for([@user,@review]) do |f| %>
<table>
<tr>
<td>Rank</td>
<td>Name</td>
<td>Comment</td>
</tr>
<tr>
<td>1</td>
<td><%= f.text_field :name %></td>
<td><%= f.text_field :comment %></td>
<%= f.hidden_field :rating, :value=> "5" %>
</tr>
<tr>
<td>2</td>
<td><%= f.text_field :name %></td>
<td><%= f.text_field :comment %></td>
<%= f.hidden_field :rating, :value=> "3" %>
</tr>
<tr>
<td>3</td>
<td><%= f.text_field :name %></td>
<td><%= f.text_field :comment %></td>
<%= f.hidden_field :rating, :value=> "1" %>
</tr>
</table>
<div class="actions">
<%= f.submit "Create my top 3" %>
</div>
<% end %>
Tout conseil est le bienvenue. Merci.
source d'informationauteur John | 2011-01-09
Vous devez vous connecter pour publier un commentaire.
Je vous conseille d'utiliser
fields_for
pour cela:Pour faire ce travail, vous aurez besoin de construire comme de nombreux objets que vous avez besoin dans votre contrôleur:
Cela permettrait de créer de nouveaux instances de l'examen des dossiers pour cet utilisateur, qui est différente de nouveaux enregistrements. Les Instances sont tout simplement les objets Ruby. Maintenant, parce que vous avez appelé
@user.reviews.build
trois fois, vous verrez que trois examens dans votre point de vue.Cela va créer trois nouveaux
Review
objets et de les relier à des@user
en supposant que tous les trois sont valables.Vous aurez besoin de dire à rails de son un tableau. Tout d'abord, lire cette section de cet article:
Pour votre but, vous aurez besoin pour construire le formulaire à la main: