3

RailsCasts の Carrierwaveチュートリアルを使用して画像をアップロードして表示しましたが、CarrierWaveDirect を使用して画像を S3 に直接アップロードしたかったのです、「初期化されていない定数 ImageUploader::CarrierWaveDirect」というエラーが表示されます。(CWだけで画像がどこに保存されていたのかよくわかりませんが、アプリケーション内で推測しています)

Railscastsのバージョンの後、

  1. gem「carrierwave_direct」と「fog」をインストールしました
  2. config/initializers 内にcarrierwave.rb ファイルを作成しました (CarrierWave の readme に lib/carrierwave/storage/fog.rb について言及されているため、これが正しい場所または正しいファイル名であるかどうかはわかりません)。
  3. image_uploader.rb 内の「storage:file」を「include CarrierWaveDirect::Uploader」に変更しました
  4. フォームビューで、「form_for」を「direct_upload_form_for」に変更しました

他に何か変更する必要がありますか? また、「ORM をロードした後に CarrierWave をロードしていることを確認してください。そうしないと、関連する拡張機能を手動で要求する必要があります。たとえば、'carrierwave/orm/activerecord' を要求する」という元の CW の readme の意味もよくわかりませんでした。

元の CarrierWave と CW_direct readme の両方で S3 のアップロードについて言及されているため、何をする必要があるのか​​ 混乱しており、両方が提供している 2 つの方向性の間に挟まれています...

何が問題なのか、「初期化されていない定数 ImageUploader::CarrierWaveDirect」と表示される理由を理解するのを手伝ってもらえますか? また、認証されていないことについて何かを言っているエラーがありました.Deviseと関係があると思いました.Deviseによって生成されたユーザーに画像が添付されており、何かを設定する必要があるからですか?

4

1 に答える 1

8

私の場合、carrierwave をインストールした後、Rails サーバーを再起動するだけで、すべてが正常に機能しました。

于 2013-05-21T07:40:38.197 に答える