2012-10-16 1 views
0

일부 Spree 핵심 템플릿 코드를 Deface로 바꾸고 조금 더 사용자 정의하려고 할 때까지 모든 것이 잘 작동합니다.Dead와 함께 Spree에서 사용자 정의 HTML을 렌더링하는 방법

나는 또한 가격 텍스트를 링크를 만드는 것을 목표로하고 있어요보다도
Deface::Override.new(
    :virtual_path => "spree/shared/_products", 
    :replace => "span.price", 
    :text => "<%= link_to truncateproduct.display_price + '<span class=\"purchase-suggestion\">BUY NOW</span>', :length => 20), product, :class => 'price selling', :itemprop => \"price\", :title => product.name + ': ' + product.display_price %>", 
    :name => "product_price" 
) 

개별 스타일링 목적의 범위에 싸여 '지금 구입'텍스트를 포함한다. $15.99<span class="purchase-suggestion">BUY NOW</span>

가 어떻게 훼손이 캐릭터 라인을 기입하는 대신 HTML을 평가 할 수 있습니다 :

이이 방법을 렌더링?

두 개의 서로 다른 Deface 파일 (링크의 스팬을 바꿔 넣는 파일)과 스팬을 추가 할 위치 (삽입 _ 보텀)를 만들어 두 단계에서이 작업을 시도했습니다. Deface를 사용하여 동일한 요소를 두 번 변경하는 것은 불가능합니다. 이것이 맞습니까? 채널에 대한 답변과 대화를


솔루션 감사합니다. 이것은 솔루션입니다 :

Deface::Override.new(
    :virtual_path => "spree/shared/_products", 
    :replace => "span.price", 
    :text => "<%= 
        link_to ('<span>' + product.display_price + '</span> <span class=\"purchase-suggestion\">BUY NOW</span>').html_safe, product, 
        :class => 'price selling', 
        :itemprop => 'price', 
        :title => product.name + ': ' + product.display_price 
       %>", 
    :name => "product_price" 
) 

.truncate 아무 이유없이 사용, .html_safe는 작업을했다.

답변

1

여기에 문제가 잘립니다. 결과는 HTML-safe로 표시되지 않으므로 raw()로 래핑되지 않는 한보기에서 사용될 때 기본 이스케이프 처리가 적용됩니다. 잘라내 기가 유효하지 않은 HTML (불균형 또는 불완전한 태그 등)을 생성 할 수 있으므로 HTML 태그 나 엔티티가 텍스트에 포함되어있는 경우주의를 기울여야합니다.

http://apidock.com/rails/ActionView/Helpers/TextHelper/truncate