2012-04-13 11 views
0

私のRuby on Railsアプリケーションでmarkdownでrubyを使用することは可能ですか?私はRedCarpetの宝石を使用しています。私はアプリケーションのコントローラーで次のようなことをしています。ここでルビをマークダウンでレンダリングすることはできますか? Ruby on Railsアプリケーション

class ApplicationController < ActionController::Base 
    before_filter :get_contact_info 

    private 
    def get_contact_info 
     @contact = Contact.last 
    end 
    end 

は、だから私はで動作するように連絡先情報を持っている連絡先

create_table "contacts", :force => true do |t| 
    t.string "phone" 
    t.string "email" 
    t.string "facebook" 
    t.string "twitter" 
end 

のスキーマである私は<% = @ contact.phone%をレンダリングするために値下げレンダラを伝えることができる方法があります> @ contact.phoneの値としてプレーンテキストの代わりに?あるいは、それ以外のものをマークダウンする必要がありますか?

編集1:ここでは値下げをレンダリング

アプリ/ヘルパー/ application_helper.rb

def markdown(text) 
    options = [:hard_wrap, :filter_html, :autolink, :no_intraemphasis] 
    Redcarpet.new(text, *options).to_html.html_safe 
end 

アプリ/ビュー/サイト/ show.html.erb

<%= markdown(site.description) %> 

編集2:

ここは私の解決策でした。あなたのコードをマークアップヘルパーに統合しましたが、これはこれまでのところうまくいきました。

+0

どのようにマークダウンをレンダリングしていますか? –

+0

@Sergio Tulentsev私はいくつかの情報を編集しました。もっと必要な場合は教えてください。ありがとう! – ruevaughn

答えて

2

MarkdownをERbで前処理し、その結果をRedCarpetに渡すことができます。私は、ヘルパーメソッドでは、このような何かを、それを置くことをお勧めしたい:

module ContactsHelper 
    def contact_info(contact) 
    content = "Hello\n=====\n\nMy number is <%= contact.phone %>" 
    erbified = ERB.new(content).result(binding) 
    Redcarpet.new(erbified).to_html.html_safe 
    end 
end 

それは多くのコンテンツなら、あなたはかなりのように、文字列にHTMLの多くを埋め込むよりも、部分、部分的なレンダリングを書いて検討するかもしれません私は上に行ったことがありますが、それはあなた次第です。

+0

ありがとう、編集2の質問に私の新しいヘルパーメソッドを入れて、それがあなたの考えのように見えるかどうか教えてください – ruevaughn

+0

それはあなたのために働く場合、それは私のために働く! – Brandan

関連する問題