質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

1751閲覧

herokuでcarrierwaveを使った画像のアップロードだけでなく、文字だけの投稿でもエラーが出てしまう

graphic-ocean

総合スコア12

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/12/11 12:46

編集2017/12/13 05:45

ローカル環境ではきちんとアップロードできるのですが、herokuにて画像をアップロードしようとすると、エラーが出てしまいます。
イメージ説明

※追記
画像アップロードは無しで、文字だけの投稿をしようとしても同様のエラーが出てしまいます。
ログ情報は以下の通りです。

2017-12-13T05:41:37.503141+00:00 app[web.1]: Processing by TweetsController#create as HTML 2017-12-13T05:41:37.503184+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"E83/owPz3KwRi34N+89NuykjCi6tmVHPZwM1DcPALx6ZJP6IljBYEUmRVwSR39ep7EqVBlpuFjt+/le7/3KuQg==", "tweet"=>{"text"=>"投稿したテキスト情報。"}, "commit"=>"投稿する"} 2017-12-13T05:41:37.506656+00:00 app[web.1]: User Load (2.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 21 ORDER BY `users`.`id` ASC LIMIT 1 2017-12-13T05:41:37.509520+00:00 app[web.1]:  (1.8ms) BEGIN 2017-12-13T05:41:37.512904+00:00 app[web.1]: SQL (2.0ms) INSERT INTO `tweets` (`text`, `user_id`, `created_at`, `updated_at`) VALUES ('投稿したテキスト情報。', 21, '2017-12-13 05:41:37', '2017-12-13 05:41:37') 2017-12-13T05:41:37.515321+00:00 app[web.1]:  (1.8ms) COMMIT 2017-12-13T05:41:37.516854+00:00 app[web.1]: Rendered tweets/create.html.erb within layouts/application (0.5ms) 2017-12-13T05:41:37.518173+00:00 app[web.1]: Rendered common/_header.html.erb (0.8ms) 2017-12-13T05:41:37.518403+00:00 app[web.1]: Completed 200 OK in 15ms (Views: 2.7ms | ActiveRecord: 7.9ms) 2017-12-13T05:41:37.773991+00:00 heroku[router]: at=info method=GET path="/css/bootstrap.min.css" host=thawing-wildwood-67353.herokuapp.com request_id=38e01828-64b8-40b0-8a4f-935e381448e2 fwd="221.113.38.150" dyno=web.1 connect=1ms service=9ms status=404 bytes=1829 protocol=https 2017-12-13T05:41:42.044501+00:00 heroku[router]: at=info method=GET path="/" host=thawing-wildwood-67353.herokuapp.com request_id=510359d9-352d-4f33-8441-ccf0bd3d22a3 fwd="221.113.38.150" dyno=web.1 connect=1ms service=92ms status=500 bytes=1754 protocol=https

※追記
ローカル環境下では、AWS S3のバケットに画像は保存されています。
herokuでは、エラーが出てしまう状況です。

この現象には、どのような原因が考えられますでしょうか。

index.html.erb

ruby

1 2<% @tweets.each do |tweet| %> 3 4 <div class="waku"> 5 <div class="tweet col-xs-3 col-md-3 block"> 6 <!-- <div class="row row-eq-height"> --> 7 <div class="trim"> 8 <div class="tweet_image"> 9 <%= image_tag tweet.image.url %> 10 </div> 11 </div> 12 <div class="tweet_text"> 13 <%= tweet.text %> 14 </div> 15 <div class="user"> 16 <p>投稿者: <%= tweet.user.family_name %> <%= tweet.user.first_name %></p> 17 </div> 18 19 <!-- ユーザー自身が投稿した作品の場合に編集・削除・編集ができる--> 20 <% if user_signed_in? && current_user.id == tweet.user_id %> 21 <div class="dropdown"> 22 <button class="btn btn-link btn-xs btn-block dropdown-toggle" type="button" data-toggle="dropdown"> 23 編集・削除 24 <span class="caret"></span> 25 </button> 26 <ul class="dropdown-menu" role="menu"> 27 <li role="presentation"><%= link_to '編集', "/tweets/#{tweet.id}/edit", method: :get %></li> 28 <li role="presentation"><%= link_to '削除', "/tweets/#{tweet.id}", method: :delete %></li> 29 </ul> 30 </div> 31 <% end %> 32 33 <!-- </div> --> 34 </div> 35 </div> 36 37<% end %>

new.html.erb

ruby

1<div class="form"> 2 <div class="col-lg-12"> 3 4 <%= form_for(@tweet) do |f| %> 5 <h3> 6 作品を投稿してみましょう 7 </h3> 8 <div class="form-group"> 9 <%= f.text_area :text, placeholder: "作品について入力してください", cols:"30", rows:"10", autofocus:"true", class:"form-control" %> 10 </div> 11 <div class="form-group file"> 12 <%= f.file_field :image, class: "form-control floating-label", placeholder: "画像アップロード" %> 13 </div> 14 15 <div class="form-group"> 16 <%= f.submit "投稿する", class:"btn btn-default" %> 17 </div> 18 19 <% end %> 20 </div> 21</div>

image_uploader.rb

ruby

1class ImageUploader < CarrierWave::Uploader::Base 2 3 # Include RMagick or MiniMagick support: 4 # include CarrierWave::RMagick 5 include CarrierWave::MiniMagick 6 7 # Choose what kind of storage to use for this uploader: 8 storage :fog 9 # storage :fog 10 11 # Override the directory where uploaded files will be stored. 12 # This is a sensible default for uploaders that are meant to be mounted: 13 def store_dir 14 "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 15 end 16 17 # Provide a default URL as a default if there hasn't been a file uploaded: 18 # def default_url(*args) 19 # # For Rails 3.1+ asset pipeline compatibility: 20 # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) 21 # 22 # "/images/fallback/" + [version_name, "default.png"].compact.join('_') 23 # end 24 25 # Process files as they are uploaded: 26 # process scale: [200, 300] 27 process :resize_to_fill => [260, 520] 28 # 29 # def scale(width, height) 30 # # do something 31 # end 32 33 # Create different versions of your uploaded files: 34 version :thumb do 35 process resize_to_limit: [260, 260] 36 end 37 38 # Add a white list of extensions which are allowed to be uploaded. 39 # For images you might use something like this: 40 # def extension_whitelist 41 # %w(jpg jpeg gif png) 42 # end 43 44 # Override the filename of the uploaded files: 45 # Avoid using model.id or version_name here, see uploader/store.rb for details. 46 # def filename 47 # "something.jpg" if original_filename 48 # end 49 50 # 画像の横回転を防ぐ 51 # process :fix_rotate 52 # def fix_rotate 53 # manipulate! do |img| 54 # img = img.auto_orient 55 # img = yield(img) if block_given? 56 # img 57 # end 58 # end 59 60end 61

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

原因は「iros_count」というlike機能のカラムでエラーが出ていたことでした。

私が別で質問していたこちらで、解決いたしました。
https://teratail.com/questions/104624

お騒がせいたしました。

投稿2017/12/13 08:22

graphic-ocean

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Herokuのディスクはすべて/tmpのようなもので、適当なタイミング(1日1回以上)で消されるものなので、アップロードしたファイルを置くには全く適しません(リファレンス)。

S3などを借りて、そちらに置くようにCarrierWaveの設定を変更しましょう。

投稿2017/12/11 13:15

maisumakun

総合スコア145123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

graphic-ocean

2017/12/11 13:24

早速のご回答、誠にありがとうございます。 質問する際に、情報が抜けていて申し訳ございません。 AWS S3の設定をした上でアップロードの作業をしましたが、エラーが出ています。 設定をしたつもりが、きちんとできていないということですね。 改めて一度、確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問