2010-11-26 4 views
0

Неудобный вопрос, но я не могу перевести документацию на фактическую форму. Это все, что предоставляет сайт.Как добавить RedCloth в form_for?

RedCloth.new("Some text").to_html 
#=> "<p>Some text</p>" 

Получаю, что так я разбираю его после его сохранения. Но как сохранить его как выделенный текст?

Вот моя попытка начать это, но я не знаю, как установить параметр для сохранения текстового поля как RedCloth. Есть идеи?

- form_for @text do |f| 
    # some RedCloth instantiation 
    f.submit 

ответ

3

Вы не сохраняете параметр, обработанный как 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, так что будьте очень осторожны, как вы его используете.

+0

Большое спасибо Райан Бигг. извините за запоздалый ответ. Работает как шарм !! – Trip

+0

, откуда передается текстовый параметр, который передается в 'RedCloth.new (text)'? before_save ничего не передает parse_text? – Leahcim

+0

@ Leahcim: Это всего лишь атрибут вашей модели. –

Смежные вопросы