2009-07-06 13 views
103

Görüntüleme kodunun etrafına nasıl bir bağlantı koyabilirim? Tek bir link_to yöntemine ruby ​​koduyla birden çok satır geçirmeyi anlayamıyorum.Bazı html ruby ​​kodu etrafında link_to nasıl sarılır?

<div class="subcolumns"> 
    <div class="c25l"> 
     <div class="subcl"> 
     <%= image_tag album.photo.media.url(:thumb), :class => "image" rescue nil %> 
     </div> 
    </div> 
    <div class="c75r"> 
     <div class="subcr"> 
      <p><%= album.created_at %></p> 
      <%= link_to h(album.title), album %> 
      <p><%= album.created_at %></p> 
      <p><%= album.photo_count %></p> 
     </div> 
    </div> 
</div> 

cevap

242

link_totakes a block of code hangi bunu etiketin gövdesi olarak kullanacaktır.

Yani,

<%= link_to(@album) do %> 
    html-code-here 
<% end %> 

Ama Yuvayı bir a etiketi içinde bir div geçerli HTML olmadığını eminim yapmak.

EDIT: Amin Ariana'nın yorumuna göre = karakter eklendi.

+14

Bu yorum sadece bir referans numarasıdır:

HTML5'te geçerlidir, ancak daha eski HTML özelliklerinde yoktur. Benzer bir soru için http://stackoverflow.com/questions/796087/make-a-div-into-a-link adresine bakın. – chucknelson

+0

Rails 2.3.8 hala yukarıdaki sözdizimini kullanarak "sözdizimi hatası, beklenmedik") 'dir. –

+0

Daha karmaşık bir yolunuz varsa, yalnızca ilk içeriği eksik olan parametreleri ekleyebilir, ör. <% = link_to some_path, method:: post%> – Obromios

6

Bir blokla link_to kullanabilirsiniz: Ben arıyorum Sonuç gösteri sayfasını sütunu tıklayın ve elde edilmesi (> = 2.2 Raylar)

<% link_to(@album) do %> 
    <!-- insert html etc here --> 
<% end %> 
+1

sadece> = Raylar 2.2 –

+0

Ah, tamam Bunun farkında değildim! Teşekkürler Omar. –

+2

link_to '=' göstermek için (bir blok ile bile) gerektirir – Brandon

7

eski Raylar sürümleri için,

<% content_tag(:a, :href => foo_path) do %> 
    <span>Foo</span> 
<% end %> 
+0

Günümü kurtardım :) teşekkürler .. bir çekicilik gibi çalıştı .. –

0

bildiğim bu yanıttan bir gecikme Biraz kullanabilirsiniz - ama burada bugün yönlendirilmiş ve iyi bir cevap bulamadık. Aşağıdaki çalışması gerekir:

Eğer <% yerine içinde kod olan basit bir bağlantıyı yapıyoruz <%= yazmak için emin olun:

<% link_to raw(html here), @album %> 
+2

Bu 'raw' XSS eğilimli içinde girilen tüm html olarak kullanılmamalıdır. – Aurril

+0

Zorunlu olmasa bile, HTML'nin kendi uygulamanızın içinde güvenli olduğunu bildiğiniz bir yerden oluşturduğu durum söz konusu olabilir. Yine de, durumların% 99'unda bunu önlemek en iyisidir. (Yukarıdaki kodun bir yanılgısına sahip olmamasına rağmen, "<% =' değil, <% '.) Ile başlamalıdır. – GMA

+0

En iyi yol değil. Burada html kendi uygulamanız tarafından oluşturulmalı ve güvenli olması sağlanmalıdır. Yukarıdaki cevaplarda daha iyi yollar var. –

11

Ayrıca, bu bazıları için bir sorun olabilir.

örn.

+0

Sanırım bu Rails 3+ için gerekli. – m33lky

İlgili konular