2010-01-19 5 views
0

Je suis nouveau sur les rails à rubis, et je voulais accomplir ce qui suit:LINK_TO au lieu de bouton pour soumettre un formulaire

J'ai une liste avec des cases à cocher (une par ligne) et je J'aime avoir un bouton de lien (pas un bouton commun ou soumettre) ainsi quand je clique dessus j'appelle une action d'un contrôleur.

Mes questions sont les suivantes:

  1. Comment puis-je appeler une action de contrôleur avec le link_to?
  2. Comment puis-je obtenir les valeurs des cases à cocher (lesquelles sont cochées) et les valeurs des champs afin que je puisse savoir à qui appliquer l'action? J'ai l'habitude de travailler avec C#, et là les listes ont une méthode ItemDataBound dans laquelle vous pouvez facilement obtenir chaque ligne disons, mais je ne peux rien trouver de similaire ici.

Si ce n'est pas assez clair, je vais mettre un exemple:

Disons que j'ai « l'écran » suivant:

Supprimer (lien)

Numéro d'article | Article Nom

chkbox 1111 t-shirt

chkbox 2222 pantalons

chkbox 3333 bottes

Maintenant, disons que je voudrais supprimer le pantalon et des bottes. Je vais donc cocher leurs cases, puis j'appuierai sur Supprimer. Maintenant, je voudrais avoir à mon contrôleur Articles, à la méthode delete_article (par exemple), puis obtenir l'ID et le nom de ces articles vérifiés, et les supprimer.

Merci, Brian

Répondre

2

Je voudrais envelopper les cases dans un formulaire et ensuite soumettre ce formulaire en utilisant le lien (soit avec javascript ou changer le lien vers un bouton de formulaire et de style comme un lien).

Rails suppose une approche RESTful prête à l'emploi, donc un lien direct touchera toujours une action GET accessible sur votre contrôleur (généralement un index ou un show). Les actions GET doivent toujours être idempotentes.

+0

Merci. Je ferai ça.Une dernière question: comment changer le style d'un bouton en tant que lien? –

+1

C'est probablement une autre question: P. Vous pouvez définir la bordure, la couleur d'arrière-plan et la couleur du texte des champs de saisie en utilisant CSS. –

2

Vous pouvez utiliser link_to la manière standard, consultez la documentation sur les rails 'link_to'. Les valeurs des cases à cocher peuvent être obtenues à partir du hachage param. Cherchez juste la documentation.

+0

Merci. Je lis la documentation et un de ses exemples dit ce qui suit: link_to "Profil",: controller => "profils",: action => "show",: id => @profile Dans mon cas, le: id paramater sera inutile, donc je ne l'ai pas passé (je ne sais pas si je peux le faire), donc je fais quelque chose comme ça: <% = link_to 'Faire une action',: controller = > 'announcements',: action => 'some_method'%> Et il va effectivement au contrôleur Announcements, mais à l'action Show insted de la méthode que j'ai spécifiée. Pourquoi? –

+0

Avez-vous spécifié la bonne méthode? Vous devriez essayer de créer. –

Questions connexes