2010-03-30 15 views

Trả lời

8

Bạn đang sử dụng Rails 3 Beta? Rails 2 theo mặc định không HTML thoát khỏi đầu ra của bạn, bạn thường phải sử dụng trình trợ giúp h, xem bài đăng của Nate. Nếu bạn đang sử dụng Rails 3, bạn cần sử dụng trình trợ giúp raw hoặc đặt chuỗi của bạn là html an toàn. Ví dụ

<% my_variable = "<b>Some Bolded Text</b>" %> 
<%= raw my_variable %> 

Hoặc

<% my_variable = "<b>Some Bolded Text</b>".html_safe %> 
<%= my_variable %> 

Kiểm tra phiên bản Rails của bạn và nhận lại cho chúng tôi.

+0

Cảm ơn Scott! Điều đó là vậy đó! Tôi đang sử dụng Rails 3 Beta – deadkarma

+0

từ khóa "thô" làm việc cho tôi trong đường ray 4 cũng – emery

0

ActionView::Helpers::TextHelper cung cấp một phương pháp strip_tags, mà thay vì chỉ thoát các thẻ, loại bỏ chúng hoàn toàn.

nguồn [tham khảo]:

def strip_tags(html)  
    return html if html.blank? 
    if html.index("<") 
     text = "" 
     tokenizer = HTML::Tokenizer.new(html) 
     while token = tokenizer.next 
     node = HTML::Node.parse(nil, 0, 0, token, false) 
     # result is only the content of any Text nodes 
     text << node.to_s if node.class == HTML::Text 
     end 
     # strip any comments, and if they have a newline at the end (ie. line with 
     # only a comment) strip that too 
     text.gsub(/<!--(.*?)-->[\n]?/m, "") 
    else 
     html # already plain text 
    end 
    end 

<%= strip_tags(my_variable) %> 
+0

Cảm ơn một mình, nhưng tôi muốn các thẻ HTML được giữ nguyên và được hiển thị trong trang – deadkarma

Các vấn đề liên quan