2012-03-14 4 views
4

다음은 문자열 내가 원하는 것 : 여기 to_sentence와 html_safe를 함께 사용 하시겠습니까?

<a href="/pugs/1-baxter">Baxter</a> and <a href="/pugs/2-sofia">Sofia</a> 

내가 출력에 사용하고 코드의 그 :

<%= @pugs.collect {|p| link_to(p.name, pug_path(p))}.to_sentence %> 

불행하게도 출력 인코딩지고 :

&lt;a href=&quot;/pugs/1-baxter&quot;&gt;Baxter&lt;/a&gt; and &lt;a href=&quot;/pugs/2-sofia&quot;&gt;Sofia&lt;/a&gt; 

내가했습니다 html_saferaw을 사용해 보았지만 아무런 영향을 미치지 않는 것으로 보입니다.

답변

2
<%= @pugs.collect {|p| link_to(p.name, pug_path(p))}.to_sentence.html_safe %> 
+0

, 나는 이미 그것을 시도했다. 작동하지 않습니다. – Shpigford

+0

실제로 작동합니다. 아마도 그때 뭔가 다른 것입니다 :) – AMIT

+0

+1이 나를 위해 작동 – tokland

1

당신은 기간에 싸서 도우미 사용할 수 있습니다

def content_link_to(name,path=nil,options=nil) 
    content_tag :span do 
     link_to name, path, options 
    end 
    end 

을 다음과 같이 사용 : 레일 5로

<%= @pugs.collect {|p| content_link_to(p.name, pug_path(p))}.to_sentence %> 
+0

HTML 안전한 콘텐츠를 출력하기 위해 이러한 링크 주변에 여분의 HTML을 추가하는 것은 과도한 것으로 보입니다. Rails가 실제 HTML을 출력하지 않고 그냥 출력하도록합니다. – Shpigford

2

가하는 to_sentence보기 도우미있다 (이 작업을 수행하는 사람은 Array#to_sentence과 다릅니다. the docs 가입일

:

to_sentence (배열 옵션 = {})
마지막 요소가 커넥터 단어 접합 쉼표로 구분 된 문장 배열 변환. 이것은 ActiveSupport의 배열 # to_sentence의 html_safe 인식 버전입니다.

가 좋아 사용 : 내가 말했듯이 <% to_sentence(@pugs.collect {|p| link_to(p.name, pug_path(p))}) %>

관련 문제