2012-04-13 8 views
0

Ist es möglich, Ruby in Markdown auf meiner Ruby on Rails App zu verwenden? Ich verwende das RedCarpet-Juwel, und ich habe Folgendes in meiner Anwendung Controller. HierKann Rubin in Markdown gerendert werden? Ruby on Rails App

class ApplicationController < ActionController::Base 
    before_filter :get_contact_info 

    private 
    def get_contact_info 
     @contact = Contact.last 
    end 
    end 

ist das Schema der Kontakt

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

Also habe ich die Kontaktinformationen haben, mit zu arbeiten, ist es eine Möglichkeit, die Abschlags Renderer sagen kann <% = @ contact.phone% zu machen > als Wert von @ contact.phone anstelle von Klartext? Oder müsste ich etwas anderes verwenden, als das abzuziehen?

Edit 1:

Rendering Abschlags hier:

app/Helfer/application_helper.rb

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

app/views/sites/show.html.erb

<%= markdown(site.description) %> 

Bearbeiten 2:

Hier war meine Lösung, danke. Ich habe deinen Code in meinen Markup-Helfer integriert, das schien bisher zu funktionieren.

+0

Wie Rendern Sie Markdown? –

+0

@Sergio Tulentsev Ich habe mit ein paar Infos bearbeitet, lassen Sie mich wissen, wenn Sie mehr brauchen. Vielen Dank! – ruevaughn

Antwort

2

Sie können Ihre Abschrift mit ERb vorverarbeiten und dann dieses Ergebnis an RedCarpet übergeben. Ich würde es in einem Helfer-Methode, so etwas wie dies schlagen vor,:

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 

Wenn es sich um eine Menge von Inhalten ist, können Sie sich anschauen sollten, dass teilweise eine partielle und Rendering-Schreiben eher als in einem String eine Menge HTML Einbettung als Ich habe es oben getan, aber es liegt an dir.

+0

Danke, ich habe meine neue Hilfsmethode in der Frage unter Edit 2, lassen Sie mich wissen, wenn das aussieht wie Sie dachten – ruevaughn

+0

Wenn es für Sie funktioniert, funktioniert es für mich! – Brandan

Verwandte Themen