前提・実現したいこと
画像や動画を添付したメッセージ投稿サイトを作成中です。
投稿機能など実装後S3での投稿に変更したところエラーメッセージが発生しました。
発生している問題・エラーメッセージ
RuntimeError in MessagesController#create Cannot load `Rails.config.active_storage.service`: Missing configuration for the :amazon Active Storage service. Configurations available for [:test, :local]
データベースには記入データが保存されていますが詳細ページに遷移しても画像データは表示されていません
Started POST "/messages" for ::1 at 2021-01-20 09:19:53 +0900 (0.3ms) SET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483 Processing by MessagesController#create as HTML Parameters: {"authenticity_token"=>"LJj60SrIJ/gF3QdWFHDEFngtOgJU2WcGyiZtrmPgzYAJO4eemjqfnIdkJu/BBHtNs+cAENC9ww/1cbmaNGbUtw==", "message_tag"=>{"title"=>"アイウエオ", "message"=>"ooooooo", "whom"=>"さしすせそ", "open_plan(1i)"=>"2025", "open_plan(2i)"=>"7", "open_plan(3i)"=>"6", "images"=>[#<ActionDispatch::Http::UploadedFile:0x00007fc1cc861790 @tempfile=#<Tempfile:/var/folders/pg/6dn2c_091hb4pfr45vz6w9fr0000gn/T/RackMultipart20210120-1154-1pq5qrm.png>, @original_filename="Railsの処理の流れ_0409.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"message_tag[images][]\"; filename=\"Rails\xE3\x81\xAE\xE5\x87\xA6\xE7\x90\x86\xE3\x81\xAE\xE6\xB5\x81\xE3\x82\x8C_0409.png\"\r\nContent-Type: image/png\r\n">], "name"=>"S3テスト"}, "commit"=>"想いを残す"} User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1 (0.2ms) BEGIN ↳ app/models/message_tag.rb:21:in `save' User Load (0.2ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1 ↳ app/models/message_tag.rb:21:in `save' Message Create (1.1ms) INSERT INTO `messages` (`title`, `whom`, `message`, `open_plan`, `user_id`, `created_at`, `updated_at`) VALUES ('アイウエオ', 'さしすせそ', 'ooooooo', '2025-07-06', 1, '2021-01-20 00:19:53.378596', '2021-01-20 00:19:53.378596') ↳ app/models/message_tag.rb:21:in `save' ActiveStorage::Attachment Load (0.4ms) SELECT `active_storage_attachments`.* FROM `active_storage_attachments` WHERE `active_storage_attachments`.`record_id` = 82 AND `active_storage_attachments`.`record_type` = 'Message' AND `active_storage_attachments`.`name` = 'images' ↳ app/models/message_tag.rb:21:in `save' (0.5ms) ROLLBACK ↳ app/models/message_tag.rb:21:in `save' Completed 500 Internal Server Error in 39ms (ActiveRecord: 2.7ms | Allocations: 32823) RuntimeError (Cannot load `Rails.config.active_storage.service`: Missing configuration for the :amazon Active Storage service. Configurations available for [:test, :local]): app/models/message_tag.rb:21:in `save' app/controllers/messages_controller.rb:17:in `create'
該当のソースコード
new.html.erb
1<div class="new-message"> 2 <h1>残したい想い</h1> 3 <%= form_with model: @message, url: messages_path, local: true do |f| %> 4 <%= render 'shared/error_messages', model: f.object %> 5 <div class="posting-form"> 6 <div class="form"> 7 タイトル 8 <span class="indispensable">必須</span> 9 </div> 10 <%= f.text_field :title, class:"form-title", id:"form-title", placeholder:"タイトル名(必須 50文字以内)", maxlength:"50" %> 11 <div class="form"> 12 メッセージ 13 <span class="indispensable">必須</span> 14 </div> 15 <%= f.text_area :message, class:"form-message", id:"form-message", placeholder:"メッセージ内容(必須 200文字以内)例)20年後の子供の誕生日に見て欲しい動画です。" ,rows:"5", maxlength:"200" %> 16 <div class="form"> 17 誰に対してか 18 <span class="indispensable">必須</span> 19 </div> 20 <%= f.text_field :whom, class:"form-whom", id:"form-whom", placeholder:"誰に宛てたものか(必須 50文字以内)例)20年後の子どもたちへ", maxlength:"50" %> 21 <div class="form"> 22 開封予定日 23 <span class="indispensable">必須</span> 24 </div> 25 <div class="form-open-plan"> 26 <%= raw sprintf( 27 f.date_select( 28 :open_plan, 29 class: 'open-plan-object', 30 use_month_numbers: true, 31 prompt:'--', 32 start_year: (Time.now.year), 33 end_year: (Time.now.year + 100), 34 date_separator: '%s'), 35 "<p> 年 </p>", "<p> 月 </p>") + "<p> 日 </p>" %> 36 </div> 37 <div class="form-caution"> 38 ※※※画像か動画どちらか1つの投稿にしてください。※※※ 39 </div> 40 <div class="image-form"> 41 <div class="form"> 42 届ける想い(画像) 43 </div> 44 <div class="click-upload"> 45 <p>クリックしてファイルをアップロード</p> 46 <%= f.file_field :images, name: 'message_tag[images][]', id:"form-image" %> 47 <div id="image-list"></div> 48 </div> 49 </div> 50 <div class="video-form"> 51 <div class="form"> 52 届ける想い(動画) 53 </div> 54 <div class="click-upload"> 55 <p>クリックしてファイルをアップロード</p> 56 <%= f.file_field :video, id:"form-video" %> 57 </div> 58 </div> 59 <div class="tag-form"> 60 タグ 61 </div> 62 <%= f.text_field :name, id:"form-tag", placeholder:"誕生日", maxlength:"20"%> 63 </div> 64 <div class="message-btn-contents"> 65 <%= f.submit "想いを残す" ,class:"message-btn" %> 66 <%= link_to 'もどる', root_path, class:"back-btn" %> 67 </div> 68 <% end %> 69 70</div>
messages_controller.rb
message_tag.rb
message.rb
storage.yml
1test: 2 service: Disk 3 root: <%= Rails.root.join("tmp/storage") %> 4 5local: 6 service: Disk 7 root: <%= Rails.root.join("storage") %> 8 9 amazon: 10 service: S3 11 region: ap-northeast-1 12 bucket: timecapsule1260 13 access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %> 14 secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
試したこと
環境変数の設定、sourceコマンドの入力
development.rb・production.rbのconfig.active_storage.serviceを
config.active_storage.service = :local
↓
config.active_storage.service = :amazonに変更
S3への処理前は投稿できていました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/20 00:53
2021/01/20 01:01
2021/01/20 04:17
2021/01/20 04:26
2021/01/20 04:50