【问题标题】:Ruby on Rails: BlueCloth gem cannot work in production when deployed to herokuRuby on Rails:部署到 Heroku 时,BlueCloth gem 无法在生产环境中工作
【发布时间】:2013-04-04 23:09:32
【问题描述】:

我正在尝试使用 BlueCloth gem 来解析我的 rails 应用程序的一些降价。我将它添加到我的 gem 文件中:

    gem 'BlueCloth'

在我的.html.erb 视图中,我使用代码

    <%=  BlueCloth.new(post.content).to_html.html_safe %>

将markdown呈现为html。这在我的本地开发环境中完全可以正常工作,但是当我推送到 heroku 时,即使在运行 bundle install 并重新启动应用程序之后,访问应用程序也会产生内部服务器错误。

我在日志中收到以下错误:

    ActionView::Template::Error (uninitialized constant ActionView::CompiledTemplates::BlueCloth):

我在 gem 文件中包含 BlueCloth

source 'https://rubygems.org'

gem 'rails', '3.2.8'

gem 'pg'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

gem 'devise'
gem 'BlueCloth'

我还通过 heroku 命令行运行了命令 bundle install

感谢您的帮助!

【问题讨论】:

  • 您确定 BlueCloth gem 在您的 Heroku 位置可用...即使在运行 Bundler 之后也是如此?
  • 不完全确定您的意思,但是在我输入require 'bluecloth' 后,这在控制台中有效,所以我想是的?
  • 如何检查 Gem 在 Heroku 位置是否可用?

标签: ruby-on-rails ruby heroku markdown bluecloth


【解决方案1】:

看起来您手动需要文件。如果您为您使用 bundlerrequire 一切,那么您可能会更容易,然后您不必将 require 添加到任何其他 .rb 文件中。这样做非常简单。根据您的 Rails 版本,这里有两个链接可以帮助您:

Rails 2.3

Rails 3

【讨论】:

  • 不幸的是,事实并非如此。我已经在使用 bundler,并且在原帖中添加了我的 gem 文件。
  • @PaulBenigeri 在您的 ApplicationController 上方尝试放置 require 'bluecloth' 并在您的 Gemfile 中将其更改为小写,这发生在我身上一次,看看是否有影响,如果没有,我们可以继续其他可能的问题。
【解决方案2】:

问题是我使用的是旧版本的 BlueCloth gem。

旧的gem叫做BlueCloth,新的叫做bluecloth

更改我的 gem 文件中的行:

    gem 'BlueCloth'

收件人:

    gem `bluecloth`

修复它。

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多