2011-09-27 40 views
28

Tôi đã nhìn vào SO về làm thế nào để thêm một thẻ <span> nhưng tôi không thấy một ví dụ mà đặt <span> nơi tôi muốn sử dụng Rails 3 link_to:Thêm thẻ div trong Rails link_to

<a href="#" class="button white"><span id="span">My span&nbsp;</span>My data</a> 

tôi đã thử một cái gì đó như:

<%= link_to(content_tag{:span => "My span&nbsp;", :id => "span"} @user.profile.my_data, "#", {:class => "button white"}) %> 

Nhưng điều đó không hiệu quả.

Trả lời

70

link_to can take a block vì vậy tôi nghĩ rằng bạn đang sau một cái gì đó như thế này:

<%= link_to '#', :class => 'button white' do %> 
    <span id="span">My span&nbsp;</span><%= @user.profile.my_data %> 
<% end %> 
+0

Perfect, cảm ơn! – tvalent2

+0

mu quá ngắn, Nếu bạn có một chút thời gian, bạn có thể xem xét phần tiếp theo của mình cho điều này. Tôi muốn thêm giá trị của liên kết bạn đã giúp tôi tạo ra một mảng. http://stackoverflow.com/questions/7564247/adding-items-to-rails-3-array-onclick – tvalent2

3
link_to '#', :class => 'button white' do 
    <span id="span">My span&nbsp;</span>My data 
end 
8

Một sự kết hợp của .html_safe với #{@user.profile.my_data} nên làm việc là tốt.

<%= link_to "<span id='span'>My span&nbsp;</span>#{@user.profile.my_data}".html_safe, "#", class: 'button white' %> 

Bạn cũng có thể sử dụng một content_tag vì vậy nó sẽ trông giống như:

<%= link_to(content_tag(:span, "My span&nbsp;", id:"span")+"#{@user.profile.my_data}", "#", class: 'button white' %> 

Họ về cơ bản giống hệt nhau nhưng người ta có thể được dễ dàng hơn trên mắt cho bạn. Ngoài ra, tôi khá mới để viết mã vì vậy nếu điều này là sai lầm vì một lý do điên rồ, xin vui lòng chỉ bình luận và tôi sẽ thay đổi nó. Cảm ơn.

+2

Điều này không sai, nhưng 'link_to ... do' có nghĩa là chính xác điều này và có vẻ tốt hơn nhiều giải pháp của bạn IMO. – Mischa

+0

Trong trường hợp của tôi giải pháp thứ hai với 'content_tag' chỉ hoạt động sau khi tôi thêm' html_safe' - '" My span   ".html_safe' và' "# {@ user.profile.my_data}". Html_safe' –

0

Trong HAML:

= link_to new_post_mobile_path(topic.slug), class: 'add-new-place-btn' do 
    %span{:class => "glyphicon glyphicon-plus", :style => "margin-right: 4px;"} 
    New Place