ApplicationHelperに関数があり、事前レンダリング用のコントローラーに正確な複製があります。事前レンダリングは、target = "_ blank"を使用して、希望どおりにリンクを作成しますが、その場でレンダリングすることはできません。私のコードは次のとおりです。
require 'redcarpet'
module ApplicationHelper
def markdown(text)
rndr = Redcarpet::Render::HTML.new(:link_attributes => Hash["target" => "_blank"])
markdown = Redcarpet::Markdown.new(
rndr,
:autolink => true,
:space_after_headers => true
)
return markdown.render(text).html_safe
end
end
これをrailsコンソールで実行すると、リンク属性なしで通常どおりリンクがレンダリングされます。コントローラ内の同一のコードは期待どおりに機能します。