2010-04-26 4 views
0

Je souhaite prendre des entrées d'un champ de texte et les transformer en un tableau de chaînes. Après avoir soumis la demande de publication, je souhaite afficher à nouveau le champ de texte, mais en incluant les valeurs du champ de texte dans un tableau.Rails: liste de champs de texte à un tableau de chaînes

J'ai une vue qui ressemblerait à ceci:

<% form_tag "/list2array" do -%> 
    <%= text_area_tag "mylist" %> 
<div><%= submit_tag 'save' %></div> 
<% end -%> 


<% @myArray.each do |item| %> 
    <%= item %> 
<% end %> 

Et comme un départ pour le contrôleur:

class List2ArrayController < ApplicationController 
    def index 
    end 

    def save 
    @myArray = params[:mylist].split("\r\n") 
    end 

end 

Cependant, après le poste, je reçois seulement une textfield vide sans valeurs le tableau du POST précédent. Dois-je utiliser la couche modèle pour mon expérience? Comment? Ou dois-je modifier mon contrôleur?

Répondre

1

Trier la réponse: Oui. Vous devez utiliser une forme de magasin de données, soit des modèles, soit vous pouvez le stocker dans la session. Les ne sont pas des suites d'état.

Si vous avez un modèle, vous pouvez ajouter un attribut appelé mylist et mylist_array (vous pouvez utiliser serialize pour le tableau). Ensuite, soit avec un setter, soit avec un callback before_validations, définissez la valeur de mylist_array comme dans votre exemple. Sur une note légèrement contradictoire: ajouter ce qui suit à la fin de votre méthode de sauvegarde, fera fonctionner votre expérience, mais vous devrez d'abord corriger votre formulaire url ou ajouter manuellement une route pour cela.

render :index 
+0

merci pour le pointeur. En fait, je veux être en mesure d'insérer une masse ou un lot d'enregistrements via un champ de texte. n'a pas trouvé une solution pour cela maintenant, mais c'est déjà une forme quelconque: http://asciicasts.com/episodes/198-edit-multiple-individually En effet, une certaine compréhension du routage REST est nécessaire. – poseid

+0

Les guides Rails sont une bonne ressource, cela peut aider: http://guides.rubyonrails.org/form_helpers.html#building-complex-forms – MatthewFord

Questions connexes