2010-10-07 11 views
8

benim application_helper.rb dosyasında aşağıdaki yardımcı adres: Raylar, Neden bu yardımcınız HTML'yi değil, alıntılarda HTML'yi çıktı?

def topmenu 
    pages = { 
     "projects" => projects_path, 
     "photos" => photos_path 
    } 
    pages.map do |key, value| 
     classnames = %(class="current") if controller.controller_name == key 
     "<li#{classnames}>#{link_to(key, value)}</li>" 
    end 
    end 

Sonra benim application.html.erb dosyasında Ben: Nedense

<%= topmenu %> 

, sayfa gösteriliyor oluşturuyor HTML'den değil, TEXT olarak yukarıdaki yardımcıdan HTML. Emin değilim neden? thx

cevap

25

Rayları çalıştırdığınızı sanıyorum3. dize dönmeden önce .html_safe yöntem Çağrı ekle:

"<li#{classnames}>#{link_to(key, value)}</li>".html_safe 
+0

Çok teşekkürler. Bunu hiçbir yerde bulamadım. Lanet google – AnApprentice

-2

Bu kod daha temiz hale getirir? Öyle değil mi? Ve yardım işlevinde daha fazla şey yapabilirsiniz (çünkü bu sadece bir html değil)