Làm thế nào tôi có thể làm cho simple_format không bọc giá trị trả về trong thẻ p?Rails 3. simple_format không bọc kết quả trong các thẻ đoạn
simple_format "<span class="required">*</span>"
Làm thế nào tôi có thể làm cho simple_format không bọc giá trị trả về trong thẻ p?Rails 3. simple_format không bọc kết quả trong các thẻ đoạn
simple_format "<span class="required">*</span>"
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 ...
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
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>
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
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
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