web-dev-qa-db-fra.com

mettre des balises haml dans l'assistant link_to

est-il possible d'ajouter du contenu html dans un assistant link_to en HAML?

j'ai essayé cela, mais tout ce que j'obtiens est une erreur de syntaxe:

= link_to "Other page", "path/to/page.html"
    %span.icon Arrow

production attendue:

<a href="path/to/page.html">Other Page<span class="icon">Arrow</span></a>
46
flavaflo

Vous devez utiliser le bloc

= link_to "path/to/page.html" do
  Other page
  %span.icon Arrow
106
Michał Szajbe

Si quelqu'un utilise toujours Rails 2.x sur un projet, il semble que la réponse acceptée renvoie le bloc, dupliquant ainsi le lien dans le balisage. Changement très simple: utilisez - au lieu de =

- link_to "path/to/page.html" do
  Other page
  %span.icon Arrow
11
Paul

La façon la plus simple de le faire est d'utiliser html_safe ou des fonctions brutes

= link_to 'Other Page<span class="icon"></span>'.html_safe, "path/to/page.html"

ou en utilisant la fonction brute (recommandé)

= link_to raw('Other Page<span class="icon"></span>'), "path/to/page.html"

Aussi simple que cela puisse être !!

N'utilisez pas la méthode html_safe sauf si vous êtes sûr que votre chaîne n'est pas nulle. Utilisez plutôt la méthode raw (), qui ne déclenchera pas d'exception sur nil.

5
Nikhil Nanjappa