2009-08-21 4 views
1

J'ai 3 actions différentes dans un contrôleur. Chacun prend un nombre différent de paramètres. Dans l'application, tous les 3 sont exécutés par l'utilisateur en cliquant sur les liens. Maintenant, j'ai besoin d'un formulaire avec quelques champs où les utilisateurs peuvent simplement taper ce qu'ils cherchent. Lorsque les utilisateurs remplissent le formulaire, en fonction de ce qui est fourni, l'une des trois actions doit être exécutée. Donc, en bref, j'ai besoin de prendre des chaînes à partir du formulaire, identifier quelle action est nécessaire, et passer les chaînes dans l'une des 3 actions en tant que paramètres.Prise d'entrée d'un utilisateur et exécution de différentes actions dans Rails

Désolé, je suis un débutant dans Rails, et si vous ne comprenez pas ma question, je vais apporter des précisions :)

Merci toujours.

[modifier]

Les 3 actions agissent à peu près les mêmes, à l'exception des paramètres. Donc dans la page d'index, j'ai les 3 liens suivants pour les 3 actions.

<h3> 
<%= link_to "1. NPA", :controller => "trunks", :action => "npa" %> <br /> 
<%= link_to "2. Switch", :controller => "trunks", :action => "switches" %><br /> 
<%= link_to "3. Trunk Group CLLI", :controller => "trunks", :action => "clli" %> 

Dites que vous avez cliqué sur le premier lien qui appelle l'action « npa », vous sera présenté avec une liste de liens à nouveau générés par le code suivant:

<h3> 
<% while j < @npa.size %> 
    <% if @npa[j] != nil%> 
    <%= link_to "#{@npa[j]}", :controller => "trunks", :action => "npanxx", :param1 => "#{@npa[j]}", :param2 => "#{@npa[j]}"%><br /> 
    <% end %> 
    <% j += 1 %> 
<% end %> 
</h3> 

Dans le Au-dessus du code, 2 paramètres (param1 et param2) sont passés à l'action suivante 'npanxx'. Ce que je dois faire est le même que ci-dessus, mais en obtenant les paramètres des champs de formulaire.

En fonction des paramètres fournis par l'utilisateur, je suppose que je peux faire en sorte que l'application décide quelle action doit être exécutée. Par exemple, les paramètres des actions ci-dessus sont tous numériques, mais pour la seconde action, les paramètres sont tous des chaînes.

Donc, il s'agit simplement de savoir comment prendre l'entrée de l'utilisateur, et de les passer à une action dans un contrôleur.

Merci pour aider tout le monde :)

+0

Il existe une variété de solutions ici. Pourriez-vous poster une partie de votre code afin que nous puissions avoir une meilleure idée de la meilleure solution? – Ben

+0

s'il vous plaît vérifier ma question. J'ai mis à jour avec plus d'informations :) Merci Ben – b1gtuna

Répondre

0

Vous pouvez soumettre le formulaire à une action de contrôleur qui fait la « identité qui est nécessaire d'agir », qui redirige ensuite à l'action spécifique aux paramètres passés.

Je pense qu'une approche plus avancée serait d'ajouter la logique 'identify action' dans votre configuration de routage.

+0

ok je suppose que mon problème est "comment soumettre le formulaire à un contrôleur". Désolé, je suis un débutant xD – b1gtuna

0

En ce qui concerne votre question à Dylan McClung sur la façon de soumettre le formulaire à un contrôleur, un simple submit_to_remote (si vous voulez une réponse AJAX) ou submit_tag (si vous voulez une réponse HTTP standard)

Submit To Remote

Submit Tag

Questions connexes