2012-01-03 18 views

Trả lời

10

Thật không may - bạn không thể. Nếu bạn kiểm tra nguồn tại http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-simple_format bạn sẽ thấy rằng các thẻ p được bao quanh nội dung vô điều kiện.

Bạn có thể tạo một helper có sử dụng mã simple_format, nhưng sửa đổi nó để không bao gồm các thẻ p ...

+1

là có một thay thế cho simple_format? tất cả tôi muốn phương pháp hiển thị của tôi là ' *' và có HTML giải thích – leonel

+1

cũng một lần nữa - simple_format chỉ dài 9 dòng và nếu bạn xóa các dòng thứ hai, thứ tám và thứ chín, sẽ không đưa các thẻ P vào nữa. Nhưng, tôi không chắc chắn ý của bạn là gì khi "giải thích HTML"? – elijah

+2

trông giống như trong Rails 4, bạn sẽ có thể thay đổi thẻ wrapper như vậy 'simple_format (my_text, {}, wrapper_tag:" div ")' nhưng nó không hoạt động đối với tôi trong Rails 3 – FireDragon

1

Có lẽ không phải những gì bạn thực sự muốn, nhưng ... tôi đã kết thúc làm điều này:

module ApplicationHelper 
    def nl2br s 
    split_paragraphs(sanitize(s, tags: [])).join('<br>').html_safe 
    end 
end 

UPD Hoặc tốt hơn này:

def nl2br s 
    sanitize(s, tags: []).gsub(/\n/, '<br>').html_safe 
end 
4

Bạn có thể chỉ định wrapper_tag tùy chọn.

simple_format 'Hello', {}, wrapper_tag: 'span' 

Mã này sẽ là:

<span>Hello</span> 
Các vấn đề liên quan