2012-03-08 18 views
45

HAML bir link_to yardımcısı içinde html içeriği eklemek mümkün mü? link_to yardımcısı içinde haml etiketleri koymak

ben bu çalıştım ama olsun bütün bir yazım hatasıdır:

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

beklenen çıkışı: herkes hala kullanıyorsa

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

cevap

104

Sen blok

= link_to "path/to/page.html" do 
    Other page 
    %span.icon Arrow 
+1

Bağlantı sonunda bu kod tarafından oluşturulan fazladan alandan nasıl kurtulabilirim biliyor musunuz? Bütün linkin altı çizildiğinde üzerine geldiğimde fark edilir. – ayjay

+0

Teşekkür ederim bu çok yararlı. Link_to'da 'do' bloğunu kullanırken, tek parametrenin yol olduğunu ve bağlantının metnini veya herhangi bir içeriğin bloğun içinde olduğunu unutmamak önemlidir. – unmultimedio

+0

[font-awesome-sass gem] (https://github.com/FortAwesome/font-awesome-sass#a-ruby-on-rails) kullanırsanız, ör. '= simge" ok-sağ "' yerine '% span.icon Ok' yerine yardımcı yöntemini çağırır. – metakermit

11

kullanmalıdır Rails 2.x bir projede, kabul edilen cevap bloğu döndürdüğü gibi görünüyor, böylece işaretlemede bağlantıyı kopyalar. . Çok basit değişikliği: bunu yapmak yerine =

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

en basit yolu - kullanmak html_safe veya ham fonksiyonları

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

veya ham işlevini kullanarak kullanmaktır

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

(önerilir) Olabildiğince basit!

Dizeninizin sıfır olmadığından emin olmadıkça html_safe yöntemini kullanmayın. Bunun yerine, nil üzerinde bir istisna oluşturmayacak raw() yöntemini kullanın.