Railsでブログ投稿ページを作っていた際にMarkdown機能を実装しようとしたのですが、
ActionView::Template::Error (Symbol or String expected, but NilClass given.というエラーが出てしまいました。
gemはredcarpetとcoderayを使用しています。
ググって色々試した結果、下記コメントアウト部分の修正で解決しました。
参考URL https://github.com/vmg/redcarpet/issues/634
場所はapp/helpers/application_helper.rbです。
class CodeRayify < Redcarpet::Render::HTML
def block_code(code, language)
CodeRay.scan(code, language || :text).div #CodeRay.scan(code, language).div←元のコード
end
end
def markdown(text)
coderayified = CodeRayify.new(filter_html: true, hard_wrap: true)
options = {
fenced_code_blocks: true,
no_intra_emphasis: true,
autolink: true,
lax_html_blocks: true,
}
markdown_to_html = Redcarpet::Markdown.new(coderayified, options)
markdown_to_html.render(text).html_safe
end
表示されました!!やったね