Railsでマークダウン機能を実装した時のエラー対処

SNSでシェアする

Railsでブログ投稿ページを作っていた際にMarkdown機能を実装しようとしたのですが、

ActionView::Template::Error (Symbol or String expected, but NilClass given.というエラーが出てしまいました。

gemはredcarpetcoderayを使用しています。

ググって色々試した結果、下記コメントアウト部分の修正で解決しました。

参考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

表示されました!!やったね

実装写真