Ruby on railsでredcarpetを使いマークダウン形式での記述を可能にしたい
gemのredcarpetを実装しようとした際に作成したヘルパーでNameErrorが発生してしまった。
発生している問題・エラーメッセージ
NameError in Posts#show app/views/posts/show.html.erb where line #4 raised: uninitialized constant MarkdownHelper::Redcarpet
該当のソースコード
ruby
1module MarkdownHelper 2 def markdown(text) 3 options = { 4 filter_html: true, 5 hard_wrap: true, 6 space_after_headers: true 7 } 8 9 extensions = { 10 autolink: true, 11 fenced_code_blocks: true, 12 lax_spacing: true, 13 no_intra_emphasis: true, 14 strikethrough: true, 15 superscript: true, 16 tables: true 17 } 18 renderer = Redcarpet::Render::HTML.new(options) 19 @markdown = Redcarpet::Markdown.new(renderer, extensions) 20 @markdown.render(text).html_safe 21 end 22end
このソースコードのしたから5行目の
renderer = Redcarpet::Render::HTML.new(options)
でNameError in Posts#showがおきています。
html
1<% @posts.each do |post| %> 2 <p> 3 <%= post.title %><br> 4 <%= markdown(post.content)%><br> 5 <%= image_tag post.image.to_s if post.image? %> 6 </p> 7<% end %>
これはshow.html.erbです。
ruby
1class PostsController < ApplicationController 2 def index 3 end 4 5 def show 6 @posts = Post.all 7 end 8 9 def create 10 @post = Post.new(content:params[:content],title:params[:title],image:params[:image]) 11 @post.save! 12 redirect_to('/posts/show') 13 end 14 15 private 16 def permit_params 17 params.require(:post).permit(:content, :title, :image) 18 end 19 20end
これはpostのコントローラーです。
補足情報
今回railsを用いてブログを作成しようと思っています。
データベースのカラムはcontent → text,title → string,image → string
です、よろしくお願いします
また、補足説明が必要でしたら言ってくれるとありがたいです。
NameErrorの解決方法
回答者様のおかげでNameErrorは解決しました。
やったこととしては
・gemファイルの確認 ←問題なし
・bundle installの再実行 ←問題なし
・サーバーの立て直し ←ここに問題あり
多分bundle install実行後にサーバーを再起動する必要があったのです。
回答者様ありがとうございます。
しかし、このソースコードだともう一つ問題が発生してしましました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/04 10:17