Как добавить RedCloth в form_for?
Смущающий вопрос, но я не могу перевести документацию в фактическую форму. Это все, что предоставляет сайт..
RedCloth.new("Some text").to_html
#=> "<p>Some text</p>"
Я понимаю, что именно так я анализирую его после того, как он был сохранен. Но как мне сохранить его как размеченный текст?
Вот моя попытка начать это, но я не знаю, как установить параметр для сохранения текстовой области как RedCloth. Есть идеи?
- form_for @text do |f|
# some RedCloth instantiation
f.submit
1 ответ
Вы не сохраняете параметр, проанализированный как RedCloth, и не рекомендую его. Анализ его в RedCloth приведет к потере исходного значения, если вы не сохранили вывод в альтернативном поле, что я бы порекомендовал.
Вы можете использовать before_save
в вашей модели, чтобы проанализировать это значение и сохранить его:
before_save :parse_text
# your model methods go here
private
def parse_text
self.parsed_text = RedCloth.new(text).to_html
end
Когда вы хотите сделать parsed_text
По вашему мнению, вы должны сказать Rails, что это безопасно:
@object.parsed_text.html_safe
Однако приведенный здесь код не учитывает людей, смешивающих Markdown и HTML, поэтому будьте очень осторожны при его использовании.