1

我正在尝试将带有 Carrierwave 的 Rails 应用程序部署到 Heroku。

当我跑步时,heroku run rake db:migrate --app myapp我得到rake aborted! uninitialized constant Activity::IconUploader.

Activity 是一个模型,它包含

mount_uploader :icon, IconUploader, :mount_on => :icon_file_name

我有一个文件 app/uploaders/icon_uploader.rb 其中包含

class IconUploader < CarrierWave::Uploader::Base
  more or less default content
end

我有 config/initializers/carrierwave.rb 它定义了在 Amazon S3 上存储文件的雾凭证并将缓存目录设置为 tmp 允许 Carrerwave 在 Heroku 上工作。

上传器在我的本地开发环境中完美运行。

为什么我在 Heroku 上收到此错误?

我可以采取哪些步骤来追踪源头?

4

1 回答 1

2

我能想到的可能性:

  1. 此文件未添加到您的 git 存储库(但在本地存在)
  2. 您需要将以下代码添加到您的自动加载路径
  3. 像这个问题(https://github.com/jnicklas/carrierwave/issues/399)

请注意,您不应该这样做:

配置/应用程序.rb

config.autoload_paths += %W(#{config.root}/app/uploaders)
于 2012-05-17T14:19:03.953 回答