ローカル環境ではきちんとアップロードできるのですが、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]: [1m[36mUser Load (2.3ms)[0m [1mSELECT `users`.* FROM `users` WHERE `users`.`id` = 21 ORDER BY `users`.`id` ASC LIMIT 1[0m 2017-12-13T05:41:37.509520+00:00 app[web.1]: [1m[35m (1.8ms)[0m BEGIN 2017-12-13T05:41:37.512904+00:00 app[web.1]: [1m[36mSQL (2.0ms)[0m [1mINSERT INTO `tweets` (`text`, `user_id`, `created_at`, `updated_at`) VALUES ('投稿したテキスト情報。', 21, '2017-12-13 05:41:37', '2017-12-13 05:41:37')[0m 2017-12-13T05:41:37.515321+00:00 app[web.1]: [1m[35m (1.8ms)[0m 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
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。