web-dev-qa-db-fra.com

Ruby on Rails - lien_pour bouton/css

Ok, je suis donc en train d’apprendre à RoR tout en développant une interface API/Web simple. J'ai suivi un certain nombre de guides et testé différents résultats. J'ai simulé des modèles HTML et je suis en train de les décomposer en vues.

Dans mon HTML, j'ai le code suivant, qui est un bouton avec un style CSS:

 <input type="submit" name="" value="Add" id="open-contacts-dialog-btn" class="inbox-sf-add-btn tip" title="Open an dialog to add a new contact"/>  

Ceci est mon bouton dans mon panneau que je voudrais lier au/livre/nouveau/, je sais que j'ai besoin d'un link_to ici mais quel serait mon code final? Le code que j'ai essayé est le suivant

<%= link_to "Add", new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %>

Mais cela n’ajoute pas mon style CSS, c’est simplement le texte "Ajouter". Toute aide serait utile. Merci

33
ChrisMJ

link_to génère une balise <a>, qui n'est pas input type="submit". Ce que vous devriez utiliser devrait être un button_to, qui génère un formulaire avec un bouton input type="submit" pour le lien:

<%= button_to "Add", new_admin_course_path, :id => "open-contacts-dialog-btn",
      :class => "inbox-sf-add-btn tip", :method => :get %>

Notez le :method => :get. Sans cela, le button_to générera un formulaire avec la méthode définie pour publier.

72
PeterWong

J'ai récemment eu à le faire parce que mon formulaire agissait différemment pour link_to par rapport à button_to et j'avais besoin de la fonctionnalité du lien fourni. La meilleure solution que j'ai trouvée n'utilise pas du tout CSS, mais appelle plutôt .html_safe pour échapper au code HTML dans le code Ruby et afficher correctement le lien sous la forme d'un bouton. Ce que vous voulez faire est ceci:

<%= link_to "<button>Add</button>".html_safe, new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %>
9
Robert

Mais il ne s'agit pas d'ajouter mon style CSS
Que voulez-vous dire? Le lien (élément a) avec les classes inbox-sf-add-btn et tip est généré, non? Donc quel est le problème?

Si vous voulez uniquement un bouton (élément input au lieu de a), vous pouvez spécifier /book/new (ou <%= new_admin_course_path %>) dans l'attribut action de votre formulaire html (élément form).

0
Nikita Rybak