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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby on Rails

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

1回答

3454閲覧

本番環境で投稿すると「We're sorry, but something went wrong.」と表示される。

HSRRRJSJQP

総合スコア24

Ruby on Rails

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

1グッド

0クリップ

投稿2020/04/21 08:46

編集2020/04/24 08:20

現状

railsで作成したアプリをAWSの設定やcapistranoで自動デプロイした状態です。
本番環境で投稿を行うと下記エラーが発生いたしました。

We're sorry, but something went wrong. If you are the application owner check the logs for more information.

なお、S3のバケットには画像が入っており、
開発環境では画像は表示できていませんが投稿はできる状態です。
リファレンスやその他記事などを参考に対処しましたが解決できず、
申し訳ございませんが質問させて頂きます。

実現したいこと

本番環境でも投稿ができる。

開発環境・Gem

開発環境

  • Rails 5.2.4.2
  • ruby 2.5.1
  • AWS(EC2,S3)
  • Application Server Unicorn
  • Web Server Nginx

Gem

  • carrierwave
  • mini_magick
  • fog-aws
  • capistrano

対応したこと

  • EC2含め再起動を実行。

修正した際は「unicorn・Nginx・MySQL」を再起動させた後に、
bundle exec cap production deployを実行しました。

  • development.logでエラーログの確認

ログを確認すると下記内容が記載されており指摘を受けたコードはconfig.storage = :fogだった。

DEPRECATION WARNING: #fog_provider is deprecated and has no effect (called from block in <top (required)> at /Users/***/+++/***-app/config/initializers/carrierwave.rb:7)

carrierwaveに関する指摘があったのでGit HubやWeb記事などを
参考にコードを照らし合わせて修正するも状況は変わらず。
併せて、 carrierwaveのGemをversionせずにbundle installするも解決できず。

コード

[config/initializers/carrierwave.rb] require 'carrierwave/storage/abstract' require 'carrierwave/storage/file' require 'carrierwave/storage/fog' CarrierWave.configure do |config| if Rails.env.production? config.storage = :fog config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws_access_key_id: Rails.application.credentials.aws[:access_key_id], aws_secret_access_key: Rails.application.credentials.aws[:secret_access_key], region: 'ap-northeast-1' } config.fog_directory = '#S3のバケット名' config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/bucket_name' else config.storage :file config.enable_processing = false if Rails.env.test? end end

追記

[cat production.log] D, [2020-04-24T07:59:26.562168 #8911] DEBUG -- : [a457333a-4c4b-4770-96b6-41913fda344a] User Load (0.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 ORDER BY `users`.`id` ASC LIMIT 1 I, [2020-04-24T07:59:26.902848 #8911] INFO -- : [a457333a-4c4b-4770-96b6-41913fda344a] Completed 500 Internal Server Error in 342ms (ActiveRecord: 0.3ms) F, [2020-04-24T07:59:26.903563 #8911] FATAL -- : [a457333a-4c4b-4770-96b6-41913fda344a] F, [2020-04-24T07:59:26.903604 #8911] FATAL -- : [a457333a-4c4b-4770-96b6-41913fda344a] ActiveModel::UnknownAttributeError (unknown attribute 'user_id' for Post.): F, [2020-04-24T07:59:26.903674 #8911] FATAL -- : [a457333a-4c4b-4770-96b6-41913fda344a] F, [2020-04-24T07:59:26.903721 #8911] FATAL -- : [a457333a-4c4b-4770-96b6-41913fda344a] app/controllers/posts_controller.rb:15:in `create'
[posts_controller] class PostsController < ApplicationController before_action :move_to_index, except: [:index, :show] before_action :set_post, only: [:show, :destroy, :edit, :update] def index @posts = Post.all.limit(5).order("created_at DESC") end def new @post = Post.new end def create @post = Post.new(post_params) if @post.save redirect_to root_path else render :new end end def show end def destroy if @post.destroy redirect_to root_path else render post_path(post.user_id,post.id) end end def edit end def update if @post.update(post_update_params) redirect_to post_path(@post) else render :edit end end def post_params params.require(:post).permit( :title, :category_id, :image, :pharse, :summery).merge(user_id: current_user.id) end def post_update_params params.require(:post).permit( :title, :category_id, :image, :image_cache ,:remove_image, :pharse, :summery).merge(user_id: current_user.id) end def move_to_index redirect_to root_path unless user_signed_in? end def set_post @post = Post.find(params[:id]) end end
[new.html.haml] =render partial: "header" .post__container .post__container__content .post__container__content__text %h1 テキスト .post__container__content__input =form_with(model: @post, local:true) do |f| .post__container__content__input__form .title = f.label :title, "テキスト", class: 'input-content' %span.form-require テキスト %br/ = f.text_field :title, autofocus: true, placeholder: "テキスト", class: 'content-default', id: "src_img" .category = f.label :category_id, "カテゴリー", class: 'input-content' %span.form-require テキスト %br/ =f.collection_select :category_id, Category.all,:id,:name, {prompt: '選択してください'}, class: 'content-default' .image = f.label :image, "テキスト", class: 'input-content' %span.form-require テキスト %br/ #img_field{onclick: "$('#file').click()"} %label.image_input_btn テキスト = f.file_field :image, autofocus: true, class: 'content-image', id: 'file' = f.hidden_field :image_cache, class: 'hidden' .pharse = f.label :pharse, "テキスト", class: 'input-content', size: 25 %span.form-require テキスト %br/ = f.text_field :pharse, autofocus: true, placeholder: テキスト", class: 'content-default' .summery = f.label :summery, "テキスト", class: 'input-content' %span.form-require テキスト %br/ = f.text_area :summery, autofocus: true, placeholder: "テキスト", class: 'content-summery' .post-btn = f.submit '投稿する', {class: 'btn-red'} =render partial: "footer"
[post.rb] class Post < ApplicationRecord has_many :comments has_many :likes belongs_to :user validates :title, {presence: true, length: {maximum: 25}} validates :image, :category_id, presence: true validates :pharse, {presence: true, length: {maximum: 25}} validates :summery, {presence: true, length: {maximum: 100}} mount_uploader :image, ImageUploader end
[schema.rb] ActiveRecord::Schema.define(version: 2020_04_10_005746) do create_table "posts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.string "title", null: false t.string "pharse", null: false t.text "summery", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.text "image", null: false t.integer "category_id", null: false t.integer "user_id" end create_table "user_informations", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.bigint "user_id" t.integer "prefecture_id", default: 0, null: false t.string "city", null: false t.integer "birth_year", null: false t.integer "birth_month", null: false t.integer "birth_day", null: false t.integer "age_id", null: false t.integer "gender_id", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["user_id"], name: "index_user_informations_on_user_id" end create_table "users", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.string "nickname", null: false t.string "email", default: "", null: false t.string "encrypted_password", default: "", null: false t.string "reset_password_token" t.datetime "reset_password_sent_at" t.datetime "remember_created_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["email"], name: "index_users_on_email", unique: true t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true end add_foreign_key "user_informations", "users" end
退会済みユーザー👍を押しています

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

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

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

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

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

HSRRRJSJQP

2020/04/21 09:05

Orlofsky様 ご指摘ありがとうございます。 Markdown記法の勉強が足りず失礼いたしました。
winterboum

2020/04/22 01:57

ごめんちょっtぼけてました。 が、まず 載せていあるlogはエラーの出ているところではないですね。それでは意味が無いです。 ボケていた所 ActionController::RoutingError  の方よみとばしてました。 これはviewの書き方の問題です。 viewを載せてください。  それと create.jpg が置いてある場所はどこか。 Rails.rootからの相対pathで
HSRRRJSJQP

2020/04/22 02:49 編集

winterboum様 ありがとうございまあう。 画像は全て「public/images」の中に置いております。 Viewはどこのviewのファイルを載せた方よろしいでしょうか? 指摘を受けていたcreate.ipgのindexのviewを質問本文の追記に記載いたします。 4月18日まで分しかエラーログは表示されませんでしたが、 改めてcat log/production.logでActionController::RoutingError と指摘を受けている箇所を 確認するとエラーと指摘された画像ファイルは create.jpg以外にも複数ありました。
winterboum

2020/04/22 13:09

tailだからです。 しかもエラーの所で無いところを載せてる。それでは役に立ちません
guest

回答1

0

DEPRECATION WARNING: はエラーではありません。警告です。次(かそのうちに)version up で使えなくなる 機能 を使ってるからなおせ、という。

エラーは他に有ります。logのエラー全文を載せてください

投稿2020/04/21 13:22

winterboum

総合スコア23549

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

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

HSRRRJSJQP

2020/04/21 14:03

winterboum様 ご指摘ありがとうございます。 DEPRECATION WARNINGの件勉強不足で失礼いたしました。 申し訳ございません。 エラーについて、「cat log/production.log」で 調べたログが4月18日分までしか表示されていないことに 先程、気づきました。 誠に申し訳ございません。 ご指摘を受けてリウlogのエラー全文とは EC2インスタンスのシステムログを指しているのでしょうか。
winterboum

2020/04/21 20:54

いえ、Rails.root の log/productionです
HSRRRJSJQP

2020/04/22 01:36

winterboum様 ありがとうございます。 質問投稿内の追記という箇所に ターミナル(EC2サーバ)でtail -f log/production.logで 出力されたコードを記載いたしました。 何卒宜しくお願いいたします。
winterboum

2020/04/22 04:19

public/images/create.jpg があるのに /images/create.jpg がないというえらー? この画像を呼んでいる、このエラーをだしている viewを。
HSRRRJSJQP

2020/04/22 08:51

winterboum様 ありがとうございます。 該当のviewは質問本文の追記に記載した トップページ(index.html.haml)が該当のviewです。 なお、本番環境でアプリを立ち上げた際は トップページ(index.html.haml)は問題なく表示されます。
winterboum

2020/04/22 13:15

そのあとなにをするとエラーになりますか?
HSRRRJSJQP

2020/04/22 15:25

winterboum様 投稿内容の拙さ誠に申し訳ございません。 投稿を行うとWe're sorry, but something went wrong. とエラー表示されます。
winterboum

2020/04/22 21:08

その時のlogが欲しいのですが
HSRRRJSJQP

2020/04/23 00:58

winterboum様 度々申し訳ございません。 cat production.logを質問本文の追記に記載いたしました。 cat production.logの使い方がちゃんと理解できてなかったです。お手数おかけしますが宜しくお願いいたします。
winterboum

2020/04/23 03:17

ActiveModel::UnknownAttributeError (unknown attribute 'user_id' for Post.) って出てますね。 画像がでないとは別の問題ですね。 view、controller、Postの定義 などがないとわからんです
HSRRRJSJQP

2020/04/23 05:46

winterboum様 new.html.hamlとposts_controllerのコードを 質問本文の追記に記載いたしました。 宜しくお願いいたします。
winterboum

2020/04/23 06:02

model Post の関連の定義とDBのスキーマも
HSRRRJSJQP

2020/04/23 08:25

winterboum様 Postモデルとschema.rbのコードを 質問本文の追記に記載いたしました。 宜しくお願いいたします。
winterboum

2020/04/23 08:49

はて、、、、 user_id有りますし、関連定義もきちんとしてますね。 よもや 本番環境で db:migrateしていないなんてことは無いですよね
winterboum

2020/04/23 12:13

まず再起動 ですね。
HSRRRJSJQP

2020/04/24 08:19 編集

winterboum様 ありがとうございます。 申し訳ございません。 下記手順を踏み再起動しましたが、 新規投稿してもWe're sorry, but something went wrong. と改善せずでした。 ・EC2インスタンス再起動 ・Nginxを再起動 ・MySQLを再起動 ・Unicorn再起動 ・ローカルのターミナルでデプロイ実行 再起動しても改善しなかったので本番環境で一度リセットし、 再度上記ステップを踏んで新規投稿を行いましたが、We're sorry, but something went wrong.の表示が出ました。 cat log/production.logを確認すると下記表示があったので、 調べ対応した内容を改めて投稿します。 Completed 500 Internal Server Error in 342ms (ActiveRecord: 0.3ms) ActiveModel::UnknownAttributeError (unknown attribute 'user_id' for Post.): app/controllers/posts_controller.rb:15:in `create' ※質問本文に全文を記載いたします。
winterboum

2020/04/24 12:11

ええ、そのエラーがあるので、Postモデルとschema.rbなどを見せていただいたのですが、 > はて、、、、 > user_id有りますし、関連定義もきちんとしてますね。 > よもや > 本番環境で db:migrateしていないなんてことは無いですよね となったわけです。 本番環境の schema.rbでも create_table "posts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|   : t.integer "user_id" end が有りますよね? そうなるとちょっと思いつきません。 なんか見落としがあるのだとおもうのですが
HSRRRJSJQP

2020/04/24 12:53

winterboum様 ありがとうございます。 本番環境で cat schema.rb をしたところ postsテーブルにはt.integer "user_id"の記載がありました。 以下、postsテーブルで表示されたデータです。 ActiveRecord::Schema.define(version:2020_04_10_005746) do create_table "posts", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t| t.string "title", null: false t.string "pharse", null: false t.text "summery", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false t.text "image", null: false t.integer "category_id", null: false t.integer "user_id" end
winterboum

2020/04/24 13:14

すみません、そうなると今の所原因がわかりません。。。
HSRRRJSJQP

2020/04/24 13:23

winterboum様 ありがとうございます。 長くお付き合いさせて申し訳ないです。 引き続き試行錯誤していきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問