web-dev-qa-db-fra.com

Code HTML à l'intérieur des boutons avec simple_form

Je suis nouveau sur Rails, et je viens de trouver la gemme simple_form. Je l'ai installé avec bootstrap suport, mais maintenant je ne peux pas faire fonctionner ce code comme je le veux)

<%= f.button :submit, "<i class='icon-ok icon-white'></i> Save", class: "btn btn-primary" %>

Je veux juste mettre l'icône à l'intérieur du bouton, mais quand je le fais, il me montre un bouton avec le texte '<i class =' ​​icon-ok icon-white '> </i> Enregistrer'

J'ai aussi essayé de faire

<%= f.button :submit, class: "btn btn-primary" do %><i class="icon-ok icon-white"></i> Save<% end %>

Mais sans succès. Comment puis-je ajouter du HTML à l'intérieur du bouton avec simple_form gem?

35
Bruno Campos

N'utilisez pas content_tag. Les oeuvres suivantes:

  <%= button_tag(type: 'submit', class: "btn btn-primary") do %>
    <i class="icon-ok icon-white"></i> Save
  <% end %>
70
Undistraction

Dans simple_form 3.0rc, utilisez: type de bouton de bouton (il passe votre bloc à l'assistant de bouton ActiveView d'origine):

<%= f.button :button do %>
  <i class="icon-save"></i>
  Commit
<% end %>

Ou écrivez une enveloppe de bouton supplémentaire.

Pour plus d'informations, consultez la méthode bouton simple_form/form_builder.rb FormBuilder #.

25
Bombazook

Je pense que vous ne pouvez pas le faire avec simple_form. Mais j'ai de bonnes nouvelles pour vous. Vous devriez être bien en utilisant Rails helper avec un formulaire simple.

fais juste

button_tag(type: 'submit', class: "btn btn-primary") do
  content_tag(:i, class: "icon-ok icon-white")
  "Save"
end

Je ne sais pas si cela fonctionne, même la syntaxe, mais cela devrait vous donner un indice

7
Ismael Abreu

Exemple de bouton d'envoi d'une ligne dans Rails with bootstrap btn class:

<%= button_tag(type: 'submit', class: "btn btn-primary") do %> Save <% end %>
1
jasonleonhard

Vous pouvez le faire avec le code suivant:

= f.button :button, 'Send', data: { disable_with: "<i class='fi-heart'></i> Sending..." }

Notez que vous souhaitez utiliser f.button au lieu de f.submit Notez également que :button doit être le premier paramètre à f.button

0
stephenmurdoch