Application_helper和ruby gem Redcarpet错误

时间:2016-11-25 13:03:00

标签: ruby-on-rails markdown redcarpet

我正在尝试使用pygment 0.6.3和redcarpet 3.3在我的webapp上运行降价并运行。不幸的是,我在调用markdown方法时面临着一堵墙:

  

未初始化的常量ApplicationHelper :: Redcarpet

这是我从application_helper.rb调用的模块:

module ApplicationHelper
    def markdown(content)
        renderer = Redcarpet::Render::HTML.new(hard_wrap: true, filter_html: true)
        options = {
            autolink: true, 
            no_intra_emphasis: true,
            disable_indented_code_blocks: true,
            fenced_code_blocks: true,
            lax_html_blocks: true,
            strikethrough: true,
            superscript: true
        }
        Redcarpet::Markdown.new(renderer, options).render(content).html_safe
    end
end

因此我按以下方式调用此方法:

<div id= "content">
        <%= markdown @post.content%>
</div>

在其他研究中,我已经做了以下事情:

  • 捆绑更新
  • 捆绑安装
  • 重启我的服务器
  • 尝试了其他版本的pygments和redcarpet

我发现一些信息说我应该删除Gemfile.lock(当删除它时,它会自动弹出)。

感谢您的帮助。

编辑:添加了Gemfile

source 'https://rubygems.org'

gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
gem 'sqlite3'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'pygments.rb', '~> 0.6.3'
gem 'redcarpet', '~> 3.3', '>= 3.3.4'

group :development, :test do
  gem 'byebug', platform: :mri
end

group :development do
  gem 'web-console'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

2 个答案:

答案 0 :(得分:0)

尝试在您的文件中写这个

before_save :assign_markdown_content, if: -> { content_changed? }

  def assign_markdown_content
    assign_attributes({
      markdown_content: self.class.markdown.render(content)
    })
  end

答案 1 :(得分:0)

对于可能遇到此问题的所有人,即使您要实现其他功能,请点击 CTRL-C命令,关闭您的rails服务器,不要只bundle installrails s

经过一整天的努力来了解幕后发生的事情,CTRL-C感觉就像圣诞节......