2012-12-27 16 views
8

BuHAML'yi dinamik bir bağlantıda nasıl kullanırım?

=link_to("Last updated on<%[email protected]_data.date_from.month %>",'/member/abc/def?month={Time.now.month}&range=xyz&year={Time.now.year}') 

O Yakut kodu almıyor ve bir dize olarak

Son <% güncellenen bu görüntülüyor benziyor HAML kullanarak bir bağlantı oluşturmak için çalışıyorum = @ last_data.date_from.month%>

ve işlevini Time.now.month veya Time.now.year almayan yanı URL'de

.

Ruby kodunu URL'de ve dizede nasıl iletirim? İkinci dizede, bu '" geçmek için gerekli olduğunu

= link_to("Last updated on #{@last_data.date_from.month}", "/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}") 

Not:

cevap

9

Muhtemelen böyle bir şey kullanmalıdır. Haml içinde = Ruby ifadesidir sonra

= link_to("/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}") do 
    Last updated on #{@last_data.date_from.month} 
+1

Hey teşekkür Birinci bölüm çalışıyor ama URL'de hala alıyorum time.Now .year ve Time.now.month –

+0

Çevreyi değiştirdiniz mi? '-> " –

+0

Hayır, –

7

Everything: bağlantı metni uzun elde ettiğini Ayrıca, böyle bir şey kullanabilirsiniz. Ruby, dizeleri HAML'ın yaptığı şekilde yorumlamıyor, bu tür bir enterpolasyonun kendi yolu var.

Ruby'de, başka bir dizgenin içinde bir değişkenin dize değerini almak istediğinizde, bunu yapabilirsiniz.

"Some string #{Time.now}" 

Yani, bu olmalıdır:

= link_to "Last updated on #{@last_data.date_from.month}", "/member/abc/def?month=#{Time.now.month}&range=xyz&year=#{Time.now.year}" 
0

kolay sözdizimi ile Basit bir örnek:

link_to "Profile #{rubycode}", "profile_path(@profile)/#{ruby_code}", class: "active" 
İlgili konular