2010-11-26 3 views
0

厄介な質問ですが、ドキュメントを実際のform_forに翻訳できないようです。これは、私がそのが保存された後、私はそれを解析する方法だと取得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に解析すると、別のフィールドに出力を格納しない限り、元の値が失われます。これは、を推奨するものです。あなたのビューでparsed_text値をレンダリングする場合

before_save :parse_text 

# your model methods go here 

private 

    def parse_text 
    self.parsed_text = RedCloth.new(text).to_html 
    end 

あなたはそれを実行しても安全ですRailsのを指示する必要があります:

あなたはその値を解析し、それを保存するために、あなたのモデルにbefore_saveを使用することができますこの:

@object.parsed_text.html_safe 

しかし、ここに含まれるコードはそうは非常に慎重にあなたがそれを使用する方法も、MarkdownをHTMLとを混合人々のために考慮されていません。

+0

ありがとうございますRyan Bigg。遅れて返信して申し訳ありません。魅力的な作品! – Trip

+0

'RedCloth.new(text)'に渡されるtextパラメータはどこから来ますか? before_saveはparse_textに何も渡しませんか? – Leahcim

+0

@Leahcim:それはあなたのモデルの属性です。 –

関連する問題