我正在使用Ruby v2.0.0和Rails 3编写一个应用程序。
我在app/helpers/posts_helper.rb中有一个帮助器:
module PostsHelper
def markdown(text)
@redcarpet = Redcarpet::Markdown.new(Redcarpet::Render::HTML, {fenced_code_blocks: true}) unless @redcarpet
@redcarpet.render text
end
end
我的Gemfile
包含gem 'redcarpet', '~> 2.2'
,我已经成功运行了bundle install
。但是每当我尝试加载使用此辅助程序的页面时,就会出现此错误:
uninitialized constant PostsHelper::Redcarpet
我该怎么做才能让这个工作起来?我对这个问题感到困惑。
编辑:
我还在rails控制台
中测试了Redcarpet:
$ bundle exec rails console
Loading development environment (Rails 3.2.13)
irb(main):001:0> Redcarpet::Markdown.new(Redcarpet::Render::HTML).render('text *markdownified*')
=> "<p>text <em>markdownified</em></p>\n"
所以它在控制台中可以工作,但在我的辅助函数中却不行(或者控制器,我也尝试过了)。
Redcarpet
更改为::Redcarpet
,现在出现了这个错误:未初始化常量Redcarpet
。 - Mike Holler@redcarpet = ...
语句会发生什么?对我来说它是有效的。 - Bryan Ash