【问题标题】:Application_helper and ruby gem Redcarpet errorApplication_helper 和 ruby​​ gem Redcarpet 错误
【发布时间】:2016-11-25 13:02:59
【问题描述】:

我正在尝试使用 pygment 0.6.3 和 redcarpet 3.3 在我的 web 应用程序上启动并运行降价。不幸的是,我在调用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]

【问题讨论】:

  • 你是如何在你的应用中加入红地毯的?
  • 通过 Gemfile: gem 'redcarpet', '~> 3.3', '>= 3.3.4'
  • 您可以将您的 Gemfile 添加到问题中吗?
  • 您可以尝试在Redcarpet 之前添加:: 吗?喜欢::Redcarpet::Markdown.new
  • 这样做时,我得到了这个:未初始化的常量 Redcarpet

标签: ruby-on-rails markdown redcarpet


【解决方案1】:

试着把这个写在你的文件里

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

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

【讨论】:

  • 感谢您。我不太确定将这段代码放在哪里。你能详细说明一下吗?
  • 另外,在过去 24 小时修改了我的代码后,我的变量“render”之间似乎有一个小的拼写错误......我相应地编辑了我的帖子。尽管如此,这个错误之前发生在我身上。出于某种神奇的原因,它现在可以工作了。无法理解为什么这次它会启动并运行,令人难以置信的沮丧,但我买了它!
【解决方案2】:

对于所有可能遇到此问题的人,即使您想要实现其他功能,请点击 CTRL-C 命令,关闭您的 Rails 服务器,不要只使用 bundle install 和 @987654322 @。

经过一整天试图了解引擎盖下发生的事情后,CTRL-C 感觉就像圣诞节......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    相关资源
    最近更新 更多