是否可以在我的 Ruby on Rails 应用程序的 markdown 中使用 ruby?我正在使用 RedCarpet gem,我的应用程序控制器中有以下内容。
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:
在此处渲染降价:
app/helpers/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:
这是我的解决方案,谢谢。我将您的代码集成到我的标记助手中,这似乎到目前为止有效。
def markdown(text)
erbified = ERB.new(text.html_safe).result(binding)
options = [:hard_wrap, :filter_html, :autolink, :no_intraemphasis]
Redcarpet.new(erbified, *options).to_html.html_safe
end