我正在尝试使用PYEMPEND 0.6.3和REDCARPET 3.3在我的WebApp上启动并运行Markdown。不幸的是,我在调用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]
尝试将其写入您的文件
before_save :assign_markdown_content, if: -> { content_changed? }
def assign_markdown_content
assign_attributes({
markdown_content: self.class.markdown.render(content)
})
end
对于所有可能遇到此问题的人,即使您想实现的其他功能,请点击 ctrl-c命令,关闭您的导轨服务器,执行不仅bundle install
和rails s
。
经过整整一天的尝试了解引擎盖下发生的事情,Ctrl-C感觉就像圣诞节。