🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Heroku

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

Ruby on Rails

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

Q&A

1回答

1073閲覧

Ruby on rails 本番環境(heroku)エラー

takaaki919

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

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

Heroku

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/12/12 06:29

編集2020/12/12 09:41

本番環境(heroku)にデプロイしたのですが新規登録時にこのエラーが出てしまいます。

We're sorry, but something went wrong. If you are the application owner check the logs for more information.
2020-12-12T06:18:25.170036+00:00 app[web.1]: I, [2020-12-12T06:18:25.169974 #4] INFO -- : [b38d1b0b-93ff-4bcd-b66e-39d388710a44] Parameters: {"authenticity_token"=>"ye4SBj3ORxIctOWZjb3RvyMgTIVOxdBY0cnYF+6L99Ag87BDqnrb5HRq9MhHXAbQ8kJ7p8qlrwKMjnUZQHUpMA==", "name"=>"xxx", "email"=>"xxx@docomo.ne.jp", "password"=>"[FILTERED]", "sex"=>"1"} 2020-12-12T06:18:25.179122+00:00 app[web.1]: D, [2020-12-12T06:18:25.178969 #4] DEBUG -- : [b38d1b0b-93ff-4bcd-b66e-39d388710a44] User Load (0.9ms) SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT $1 [["LIMIT", 1]] 2020-12-12T06:18:25.181276+00:00 app[web.1]: I, [2020-12-12T06:18:25.181118 #4] INFO -- : [b38d1b0b-93ff-4bcd-b66e-39d388710a44] Completed 500 Internal Server Error in 11ms (ActiveRecord: 0.9ms | Allocations: 615) 2020-12-12T06:18:25.182817+00:00 app[web.1]: F, [2020-12-12T06:18:25.182681 #4] FATAL -- : [b38d1b0b-93ff-4bcd-b66e-39d388710a44] 2020-12-12T06:18:25.182818+00:00 app[web.1]: [b38d1b0b-93ff-4bcd-b66e-39d388710a44] ActiveModel::UnknownAttributeError (unknown attribute 'sex' for User.): 2020-12-12T06:18:25.182819+00:00 app[web.1]: [b38d1b0b-93ff-4bcd-b66e-39d388710a44] 2020-12-12T06:18:25.182820+00:00 app[web.1]: [b38d1b0b-93ff-4bcd-b66e-39d388710a44] app/controllers/users_controller.rb:29:in `create'
gem 'pg', group: :production ``` も追加していますし、

heroku run rake db:migrate

:DATABASE=> \d users
Table "public.users"
Column | Type | Collation | Nullable | Default
------------+--------------------------------+-----------+----------+-----------------------------------
id | bigint | | not null | nextval('users_id_seq'::regclass)
name | character varying | | |
email | character varying | | |
created_at | timestamp(6) without time zone | | not null |
updated_at | timestamp(6) without time zone | | not null |

調べても解決できなかったので教えて頂きたいです。 よろしくお願い致します。 ![イメージ説明](1affe5da1a3ac8ab6d1ae9260c5724f1.png)

users/new.html

<div class="main users-new"> <div class="container"> <div class="form users-form"> <div class="form-body"> <% @user.errors.full_messages.each do |message| %> <div class="form-error"> <%= message %> </div> <% end %> <%= form_tag("/users/create") do %>
<p>ユーザー名</p> <input name="name" value="<%= @user.name %>"> <p>メールアドレス</p> <input name="email" value="<%= @user.email %>"> <p>パスワード</p> <input type="password" name="password" value="<%= @user.password %>"> <div class="sex-field"> <%= label_tag :name, "性別" %> <%= select_tag :sex, options_for_select({選択してください: 0, 男性: 1 , 女性: 3}, 0), include_blank: true %> </div> <div class="sample"> <p>パーソナルトレーナーの方はこちらをチェックしてください</p> <input id="page_freezeflag" name="trainer" type="checkbox" value="true" /> </div> <input type="submit" value="新規登録"> <% end %> </div> </div>
</div> </div> ```
users/index.html <div class="main users-index"> <div class="container"> <h1 class="users-heading">Trainer</h1> <div class="form-body"> <%= form_tag({:controller => "users", :action => "index"}, {:method => :post}) do %> <div class="prefecture"> <%= label_tag :prefecture, "都道府県" %> <%= select_tag :prefecture, options_for_select({選択してください: "選択してください", 北海道:"北海道",青森県:"青森県",岩手県:"岩手県",宮城県:"宮城県",秋田県:"秋田県",山形県:"山形県",福島県:"福島県", 茨城県:"茨城県",栃木県:"栃木県",群馬県:"群馬県",埼玉県:"埼玉県",千葉県:"千葉県",東京都:"東京都",神奈川県:"神奈川県", 新潟県:"新潟県",富山県:"富山県",石川県:"石川県",福井県:"福井県",福井県:"福井県",長野県:"長野県", 岐阜県:"岐阜県",静岡県:"静岡県",愛知県:"愛知県",三重県:"三重県", 滋賀県:"滋賀県",京都府:"京都府",大阪府:"大阪府",兵庫県:"兵庫県",奈良県:"奈良県",和歌山県:"和歌山県", 鳥取県:"鳥取県",島根県:"島根県",岡山県:"岡山県",広島県:"広島県",山口県:"山口県", 徳島県:"徳島県",香川県:"香川県",愛媛県:"愛媛県",高知県:"高知県", 福岡県:"福岡県",佐賀県:"佐賀県",長崎県:"長崎県",熊本県:"熊本県",大分県:"大分県",宮崎県:"宮崎県",鹿児島県:"鹿児島県", 沖縄県:"沖縄県"}, "選択してください"), include_blank: true %> </div> <div class="sex-field"> <%= label_tag :name, "性別" %> <%= select_tag :sex, options_for_select({選択してください: 0, 男性: 1 , 女性: 3}, 0), include_blank: true %> <p><%= submit_tag "検索" %></p> </div> <% end %> <% @users.each do |user| %> <div class="users-index-item"> <div class="user-left"> <img src="<%= "/user_images/#{user.image_name}" %>"> </div> <div class="user-right"> <%= link_to(user.name, "/users/#{user.id}") %> <P>MaineGym:<%= user.mainegym %></P> プロフィール<p><%= user.profile %></p> </div> </div> <% end %> </div> </div> </div>
users_controller def index @users = User.where(is_trainer: true) if params[:prefecture].present? @users = @users.where(prefecture: params[:prefecture]) end if params[:sex].present? @users = @users.where(sex: params[:sex]) end end def show @user = User.find_by(id: params[:id]) end def new @user = User.new end def create @user = User.new( name: params[:name], sex: params[:sex], email: params[:email], image_name: "fashion-985556_1920.jpg", password: params[:password] ) if params[:trainer] == "true" @user.is_trainer = true print params end if @user.save session[:user_id] = @user.id flash[:notice] = "ユーザー登録が完了しました" redirect_to("/users/#{@user.id}") else render("users/new") end end
routes resources :blogs resources :videos devise_for :users get "login" => "users#login_form" post "login" => "users#login" post "logout" => "users#logout" post "users/:id/update" => "users#update" get "users/:id/edit" => "users#edit" post "users/create" => "users#create" get "singnup" => "users#new" post "users/index" => "users#index" get "users/index" => "users#index" get "users/:id" => "users#show", as: :user get "posts/index" => "posts#index" get "posts/new" => "posts#new" get "posts/:id" => "posts#show", as: :post resources :comments, only: [:create,:destroy] post "posts/create" => "posts#create" get "posts/:id/edit" => "posts#edit" post "posts/:id/update" => "posts#update" post "posts/:id/destroy" => "posts#destroy" get "/" => "home#top" get "about" => "home#about" get "contacts/new" => "contacts#new" post "contacts/create" => "contacts#create" end ```試した事 --- 叩いてみたら反映されてませんでした。 heroku run rake db:migrate したのに何故反映されないのでしょうか?

DATABASE=> \d users
Table "public.users"
Column | Type | Collation | Nullable | Default
------------+--------------------------------+-----------+----------+-----------------------------------
id | bigint | | not null | nextval('users_id_seq'::regclass)
name | character varying | | |
email | character varying | | |
created_at | timestamp(6) without time zone | | not null |
updated_at | timestamp(6) without time zone | | not null |

構文のエラーですがローカルではエラーが起きないのですが本番になるとSyntaxErrorが出てしまいます

% heroku run rake db:migrate
Running rake db:migrate on ⬢ kininarune... up, run.6285 (Free)
D, [2020-12-12T09:06:17.964574 #4] DEBUG -- : (0.8ms) SELECT pg_try_advisory_lock(4052775073926840450)
D, [2020-12-12T09:06:17.992277 #4] DEBUG -- : (3.0ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
I, [2020-12-12T09:06:17.995492 #4] INFO -- : Migrating to AddUserIdToPosts (20200802111950)
D, [2020-12-12T09:06:18.002397 #4] DEBUG -- : (6.3ms) SELECT pg_advisory_unlock(4052775073926840450)
rake aborted!
SyntaxError: /app/db/migrate/20200802111950_add_user_id_to_posts.rb:7: syntax error, unexpected end, expecting end-of-input
/app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in require' /app/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in block in require_with_bootsnap_lfi'

/app/vendor/bundle/ruby/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in with_friendly_errors' /app/vendor/bundle/ruby/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in <top (required)>'
/app/bin/bundle:104:in load' /app/bin/bundle:104:in <main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

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

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

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

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

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

m.ts10806

2020/12/12 06:36

現状の提示内容で言えるのは「エラーの通り」しかないです。それでよければ回答します。 コードも提示されてませんし。
takaaki919

2020/12/12 06:44

回答お願い致します! コードを載せたいのですがどこがエラーなのか分からない、また全てコードを載せる事もできないので提示できませんでした。
m.ts10806

2020/12/12 06:45

結局自身で調べることになりますがそれでもいいということですね。
takaaki919

2020/12/12 06:49

githubがあるのですがそちらでもいいでしょうか?
m.ts10806

2020/12/12 06:52

いいかどうかはこちらでは判断できません。 公開範囲気にせず、全世界に公開しても問題が出ないものでしたらそれでもいいでしょうし。 それで問題あるのでしたら、問題が再現できて公開可能なミニマムアプリケーションを改めて組むことになります。それはこちらで判断できることはないです。 結局は「質問本文に提示可能な範囲のコードを提示する」のが原則です。 https://teratail.com/help/question-tips#questionTips3-5-1
takaaki919

2020/12/12 07:00

sexに関するコードを貼りなおしますのでお願い致します。
guest

回答1

0

質問にコードが追記される前の回答です

エラーの通りです。

ActiveModel::UnknownAttributeError (unknown attribute 'sex' for User.):

Google翻訳そのまま:ActiveModel :: UnknownAttributeError(ユーザーの不明な属性「性別」)

Userモデルにsexという属性がない そういう指摘です。

質問に追記されたことを受けた追記

heroku run rake db:migrate

実行結果はどうなってましたか?
正しく作られたならそれなりのメッセージがでるはずです。
一度テーブルをdropしても良いかもしれません。
rake db:migrate:reset

投稿2020/12/12 06:46

編集2020/12/12 09:16
m.ts10806

総合スコア80875

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

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

takaaki919

2020/12/12 06:58

heroku run rake db:migrate をしているので属性(カラム)はあるはずなのですが・・・
m.ts10806

2020/12/12 07:01

ただ、そういうエラーが出ているということは、「ないんでしょう」としか。 herokuに作ったDBにはちゃんと反映されてますか? 直接SQL叩いて確認してください。
takaaki919

2020/12/12 07:24

叩いてみたら反映されてませんでした。 heroku run rake db:migrate したのに何故反映されないのでしょうか?
takaaki919

2020/12/12 07:35

gem 'pg', group: :production このgemを使って本番はPostgreSQLに設定もできています。
m.ts10806

2020/12/12 08:48

>heroku run rake db:migrate 実行結果はどうなってましたか? 作られたならそれなりのメッセージがでるはずです。 一度テーブルをdropしても良いかもしれません。 rake db:migrate:reset
takaaki919

2020/12/12 09:15

SyntaxErrorのエラーが出てます。 ローカルでは大丈夫なのですが何故エラーが出るのでしょうか?
m.ts10806

2020/12/12 09:17

「エラーの通りです」を繰り返すことになります。 提示されてないプログラムで出ているので、提示されないことには何とも言えません。
m.ts10806

2020/12/12 09:18

ただ、テーブルが既にできている状態でmigrate実行しても「既に存在するテーブル」として通らないとは思いますが。
takaaki919

2020/12/12 09:29

rake db:migrate:reset を実行して再び heroku run rake db:migrate すれば良いでしょうか?
takaaki919

2020/12/12 11:16

heroku run rake db:migrate しましたが同じエラーでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問