左側に表示されている右側のコードを出力するスタイルガイドを作成しています。
%%を追加するとERBがエスケープされることを知っています
ブロックの内容を取得し、コードを2か所にレンダリングするヘルパーを作成しました。1つはhtmlを表示し、もう1つはhtmlを作成したソースERBを表示します。
問題は、ERBが必要な場所にHTMLを戻すことです。
ビューコード
<%= display_code do %>
<%= link_to "Button", "/style_guide, class: "btn" %>
<% end %>
ヘルパーコード
module StyleGuideHelper
def display_code(&block)
content = with_output_buffer(&block)
html = ""
html << content_tag(:div, content, class: "rendered-code")
html << content_tag(:div, escape_erb(content), class: "source-code-preview")
html.html_safe
end
def escape_erb(code)
code = code.gsub("%=", "%%=")
end
end
期待される結果 ボタン<%= link_to "Button"、 "/ style_guide、class:" btn "%>
実際の結果 ボタンボタン
乾杯