coderay redcarpetを使ってシンタックスハイライトを実装しているサイトを作っています。
その際に
ハイライトを反映させる時に
言語の指定をしないとエラーが出ます。
言語の指定をしない場合でもハイライトを反映させるためにはどうすれば良いでしょうか。
発生している問題・エラーメッセージ
NoMethodError in Codes#show Showing /vagrant/code_history/app/views/codes/show.html.erb where line #27 raised: undefined method `split' for nil:NilClass Extracted source (around line #8): 6 7 8 9 10 11 # 言語の指定とカスタマイズ def block_code(code, language) language = language.split(':')[0] case language.to_s when 'rb' Rails.root: /vagrant/code_history Application Trace | Framework Trace | Full Trace app/helpers/application_helper.rb:8:in `block_code' app/helpers/application_helper.rb:43:in `render' app/helpers/application_helper.rb:43:in `markdown' app/views/codes/show.html.erb:27:in `_app_views_codes_show_html_erb___1910542892967189333_70242922696240' Request Parameters: {"id"=>"43"}
該当のソースコード
module ApplicationHelper require "redcarpet" require "coderay" class HTMLwithCoderay < Redcarpet::Render::HTML def block_code(code, language) language = language.split(':')[0] case language.to_s when 'rb' lang = 'ruby' when 'yml' lang = 'yaml' when 'css' lang = 'css' when 'html' lang = 'html' when '' lang = 'md' else lang = language end CodeRay.scan(code, language || 'md').div end end
あなたの回答
tips
プレビュー