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

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

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

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

Ruby

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

Heroku

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

Ruby on Rails

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

Q&A

解決済

2回答

1220閲覧

herokuのエラー箇所についてご教授いただきたいです

kazuki0904

総合スコア12

Ruby on Rails 5

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

Ruby

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

Heroku

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

Ruby on Rails

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

0グッド

2クリップ

投稿2020/08/11 05:50

railsを使っていて、開発環境ではうまく動いたのですが
本番環境では下記のエラーが表示させてしまいます。

ログを見てみたのですが問題点が分からず投稿いたしました。

エラー箇所と、もし可能であれば修正方法をご教授いただけましたら幸いです。
イメージ説明

以下 heroku logsの内容になります。

rails

12020-08-11T04:17:26.573250+00:00 app[web.1]: I, [2020-08-11T04:17:26.573127 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Started GET "/" for 27.141.86.191 at 2020-08-11 04:17:26 +0000 22020-08-11T04:17:26.580117+00:00 app[web.1]: I, [2020-08-11T04:17:26.580014 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Processing by StaticPagesController#home as HTML 32020-08-11T04:17:26.582201+00:00 app[web.1]: I, [2020-08-11T04:17:26.582119 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendering static_pages/home.html.erb within layouts/application 42020-08-11T04:17:26.584178+00:00 app[web.1]: I, [2020-08-11T04:17:26.584098 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendered shared/_header.html.erb (0.5ms) 52020-08-11T04:17:26.584997+00:00 app[web.1]: I, [2020-08-11T04:17:26.584905 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendered shared/_search.html.erb (0.5ms) 62020-08-11T04:17:26.589138+00:00 app[web.1]: D, [2020-08-11T04:17:26.589055 #4] DEBUG -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Dog Load (1.2ms) SELECT "dogs".* FROM "dogs" 72020-08-11T04:17:26.590601+00:00 app[web.1]: I, [2020-08-11T04:17:26.590523 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendered shared/_kind_dogs.html.erb (5.3ms) 82020-08-11T04:17:26.594295+00:00 app[web.1]: I, [2020-08-11T04:17:26.594214 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendered shared/_side_bar_col3.html.erb (0.3ms) 92020-08-11T04:17:26.605317+00:00 app[web.1]: D, [2020-08-11T04:17:26.605154 #4] DEBUG -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] SQL (2.3ms) SELECT "foods"."id" AS t0_r0, "foods"."name" AS t0_r1, "foods"."created_at" AS t0_r2, "foods"."updated_at" AS t0_r3, "foods"."image" AS t0_r4, "foods"."detaile" AS t0_r5, "foods"."price" AS t0_r6, "foods"."japan" AS t0_r7, "foods"."try" AS t0_r8, "foods"."grain" AS t0_r9, "microposts"."id" AS t1_r0, "microposts"."content" AS t1_r1, "microposts"."user_id" AS t1_r2, "microposts"."created_at" AS t1_r3, "microposts"."updated_at" AS t1_r4, "microposts"."rate" AS t1_r5, "microposts"."dog_id" AS t1_r6, "microposts"."food_id" AS t1_r7, "microposts"."likes_count" AS t1_r8, "microposts"."title" AS t1_r9 FROM "foods" LEFT OUTER JOIN "microposts" ON "microposts"."food_id" = "foods"."id" GROUP BY food_id ORDER BY avg(microposts.rate) desc 102020-08-11T04:17:26.611224+00:00 app[web.1]: I, [2020-08-11T04:17:26.610733 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendered shared/_ranking.html.erb (16.1ms) 112020-08-11T04:17:26.611498+00:00 app[web.1]: I, [2020-08-11T04:17:26.611400 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Rendered static_pages/home.html.erb within layouts/application (29.1ms) 122020-08-11T04:17:26.612881+00:00 app[web.1]: I, [2020-08-11T04:17:26.612765 #4] INFO -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] Completed 500 Internal Server Error in 32ms (ActiveRecord: 3.5ms) 132020-08-11T04:17:26.621717+00:00 app[web.1]: F, [2020-08-11T04:17:26.619380 #4] FATAL -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] 142020-08-11T04:17:26.621861+00:00 app[web.1]: F, [2020-08-11T04:17:26.621772 #4] FATAL -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] ActionView::Template::Error (PG::GroupingError: ERROR: column "foods.id" must appear in the GROUP BY clause or be used in an aggregate function 152020-08-11T04:17:26.621863+00:00 app[web.1]: LINE 1: SELECT "foods"."id" AS t0_r0, "foods"."name" AS t0_r1, "food... 162020-08-11T04:17:26.621863+00:00 app[web.1]: ^ 172020-08-11T04:17:26.621872+00:00 app[web.1]: : SELECT "foods"."id" AS t0_r0, "foods"."name" AS t0_r1, "foods"."created_at" AS t0_r2, "foods"."updated_at" AS t0_r3, "foods"."image" AS t0_r4, "foods"."detaile" AS t0_r5, "foods"."price" AS t0_r6, "foods"."japan" AS t0_r7, "foods"."try" AS t0_r8, "foods"."grain" AS t0_r9, "microposts"."id" AS t1_r0, "microposts"."content" AS t1_r1, "microposts"."user_id" AS t1_r2, "microposts"."created_at" AS t1_r3, "microposts"."updated_at" AS t1_r4, "microposts"."rate" AS t1_r5, "microposts"."dog_id" AS t1_r6, "microposts"."food_id" AS t1_r7, "microposts"."likes_count" AS t1_r8, "microposts"."title" AS t1_r9 FROM "foods" LEFT OUTER JOIN "microposts" ON "microposts"."food_id" = "foods"."id" GROUP BY food_id ORDER BY avg(microposts.rate) desc): 182020-08-11T04:17:26.622245+00:00 app[web.1]: F, [2020-08-11T04:17:26.622166 #4] FATAL -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] 7: <div class="ranking-kind"> 192020-08-11T04:17:26.622246+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] 8: <ol class="d-flex justify-content-between"> 202020-08-11T04:17:26.622247+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] 9: 212020-08-11T04:17:26.622248+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] 10: <% @foods.order("avg(microposts.rate) desc").each_with_index do |food,n| %> 222020-08-11T04:17:26.622248+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] 11: <% break if n==3 %> 232020-08-11T04:17:26.622249+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] 12: <li class="rank-category"> 242020-08-11T04:17:26.622250+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] 13: <!-- 商品画像--> 252020-08-11T04:17:26.624168+00:00 app[web.1]: F, [2020-08-11T04:17:26.622295 #4] FATAL -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] 262020-08-11T04:17:26.624310+00:00 app[web.1]: F, [2020-08-11T04:17:26.624236 #4] FATAL -- : [d2b3adea-90e5-4003-822a-fbc49c224a0e] app/views/shared/_ranking.html.erb:10:in `each_with_index' 272020-08-11T04:17:26.624311+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] app/views/shared/_ranking.html.erb:10:in `_app_views_shared__ranking_html_erb__1684178908291161544_47314502689060' 282020-08-11T04:17:26.624312+00:00 app[web.1]: [d2b3adea-90e5-4003-822a-fbc49c224a0e] app/views/static_pages/home.html.erb:40:in `_app_views_static_pages_home_html_erb___3541224926667824017_47314502341340' 292020-08-11T04:17:26.625163+00:00 heroku[router]: at=info method=GET path="/" host=warm-harbor-81729.herokuapp.com request_id=d2b3adea-90e5-4003-822a-fbc49c224a0e fwd="27.141.86.191" dyno=web.1 connect=1ms service=55ms status=500 bytes=1891 protocol=https

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

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

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

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

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

winterboum

2020/08/11 08:13

@foods の定義で何かあります。 そこ見せてください
kazuki0904

2020/08/11 08:45 編集

@foodsは下記のように定義してあります。よろしくお願いします。 @foods = Food.eager_load("microposts") .group("food_id")
guest

回答2

0

エラーはこれです
ActionView::Template::Error (PG::GroupingError: ERROR: column "foods.id" must appear in the GROUP BY clause or be used in an aggregate function

修正箇所は app/views/shared/_ranking.html.erb:10:in `each_with_index'ここかとおもいます

実装がわからないのでどういう状態かわからないですが、こんなかんじだったりしますかね
https://makandracards.com/bitcrowd/32883-pg-groupingerror-error-column-must-appear-in-the-group-by-clause-or-be-used-in-an-aggregate-function-in-rails-while-trying-group

投稿2020/08/11 08:28

編集2020/08/11 08:30
koskacts

総合スコア145

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

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

0

ベストアンサー

@foods を得るのに group("food_id") する意図が見えません。
@foods = Food.eager_load("microposts")
ここまでのところでは 「Food.allだと1+N問題になってしまうから、micropstも取り込んでおく」と読めますが、その意図でしたら groupは不要です。
この group で何を狙っていますか?

なるほど

とすると

Food.joins(:microposts).group("microposts.food_id"). order("avg(microposts.rate) desc")

みたいな感じかな。(未確認)
joinsをeager_loadにしても動くと思いますが、、、

元々の式の .group("food_id").group("microposts.food_id") にすればよいのかな

投稿2020/08/11 09:22

編集2020/08/12 01:14
winterboum

総合スコア23347

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

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

kazuki0904

2020/08/11 14:33

ご返信ありがとうございます。 フロント側で以下のように記述しており、 group("food_id") によってfoodごとの平均rateを算出しようとしてこちらの書き方を致しました。 <% @foods.order("avg(microposts.rate) desc").each_with_index do |food,n| %>
kazuki0904

2020/08/12 12:59

.group("food_id") を .group("microposts.food_id") に変更したのですが、全く同じエラーが記載されました。 サーバーのログを確認したところ、以下の記述でした。 CACHE (0.0ms) SELECT AVG("microposts"."rate") FROM "microposts" WHERE "microposts"."food_id" = ? [["food_id", 1]] CACHE (0.0ms) SELECT AVG("microposts"."rate") FROM "microposts" WHERE "microposts"."food_id" = ? [["food_id", 1]] .group("food_id")、.group("microposts.food_id")、.group("food_id")のどれを記述してもmicroposts.food_idのgroupを作成しているということだと思うのですが、だとしたら問題点が分からなくなってしまいまいした。 申し訳ございません。 お力添えいただけましたら幸いです。
winterboum

2020/08/12 13:06

「みたいな感じかな」は動きますか?それによって次の手を考えます
kazuki0904

2020/08/12 13:11

joinsではエラーが起こるので、eager_loadにし動きました。
winterboum

2020/08/12 22:37

としますと @foods = Food.eager_load(:microposts).group("microposts.food_id") としておいて @foods.order("avg(microposts.rate) desc").each_with_index do ではだめでしょうか?
kazuki0904

2020/08/13 02:20

同じくローカルでは動くのですが、herokuにあげると同様のエラーが記述されております、、、
winterboum

2020/08/13 03:51

ふむ、、、 locaとherokuでなにが違うか、ですね。 localのDBはpgではないですよね?
kazuki0904

2020/08/13 16:13

はい、sqlite3を使用しています!
winterboum

2020/08/13 23:21

pg の場合 group(SQLでのgroup_by)を使う場合色々有るようです。 単独のtableの場合の例はいくつか見つけましたが、結合した場合の例には辿りつけていません。 単独での例を載せますのでこれらを参考に楽しんでください、。。。 rails と postgress をタグにして質問を起こしたほうがよいかもしれない https://www.366service.com/jp/qa/59a271a24e322aae8433b9bcd3d27a88 http://ooutimatuki.hatenablog.com/entry/2019/01/10/161520 https://www.it-swarm.dev/ja/ruby-on-rails/active-record%E3%80%81rails%E3%81%8A%E3%82%88%E3%81%B3postgres%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E9%87%8D%E8%A4%87%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E6%8C%81%E3%81%A4%E8%A1%8C%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%97%E3%81%BE%E3%81%99/1045325146/
kazuki0904

2020/08/14 06:27

ご丁寧にありがとうございます。 参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問