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

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

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 5

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

Heroku

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

Q&A

解決済

1回答

501閲覧

ActionController::RoutingError (uninitialized constant Places Did you mean? Place):

ryota5656

総合スコア8

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Ruby on Rails 5

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

Heroku

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

0グッド

0クリップ

投稿2022/05/24 13:56

google API等を使用し、場所を登録するアプリを作成しています。
docker上では問題なく登録できましたが、heroku上で以下のエラーが発生し困っています。

herokuログ

12022-05-23T08:54:17.862694+00:00 app[web.1]: I, [2022-05-23T08:54:17.862622 #4] INFO -- : [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] Started GET "/places?place%5Baddress%5D=%E6%97%A5%E6%9C%AC%E3%80%81%E3%80%92333-0842+%E5%9F%BC%E7%8E%89%E7%9C%8C%E5%B7%9D%E5%8F%A3%E5%B8%82%E5%89%8D%E5%B7%9D%EF%BC%94%E4%B8%81%E7%9B%AE%EF%BC%94%EF%BC%95%E2%88%92%EF%BC%91%EF%BC%91&place%5Blatitude%5D=35.8370795&place%5Blongitude%5D=139.7098658&place%5Bname%5D=%E7%84%BC%E9%B3%A5%E3%81%AE%E3%82%B9%E3%82%A8%E3%83%92%E3%83%AD&place%5Bplace_id%5D=ChIJNWOOxcKUGGARPHuBNA6Bqoo&place%5Bprice_level%5D=&place%5Brating%5D=4&place%5Buser_id%5D=4" for 103.3.6.238 at 2022-05-23 08:54:17 +0000 22022-05-23T08:54:17.867284+00:00 app[web.1]: F, [2022-05-23T08:54:17.867223 #4] FATAL -- : [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] 32022-05-23T08:54:17.867324+00:00 app[web.1]: F, [2022-05-23T08:54:17.867287 #4] FATAL -- : [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] ActionController::RoutingError (uninitialized constant Places 42022-05-23T08:54:17.867324+00:00 app[web.1]: Did you mean? Place): 52022-05-23T08:54:17.867326+00:00 app[web.1]: F, [2022-05-23T08:54:17.867313 #4] FATAL -- : [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] 62022-05-23T08:54:17.867364+00:00 app[web.1]: F, [2022-05-23T08:54:17.867338 #4] FATAL -- : [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.6/lib/active_support/inflector/methods.rb:283:in `const_get' 72022-05-23T08:54:17.867365+00:00 app[web.1]: [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.6/lib/active_support/inflector/methods.rb:283:in `block in constantize' 82022-05-23T08:54:17.867365+00:00 app[web.1]: [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.6/lib/active_support/inflector/methods.rb:281:in `each' 92022-05-23T08:54:17.867365+00:00 app[web.1]: [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.6/lib/active_support/inflector/methods.rb:281:in `inject' 102022-05-23T08:54:17.867366+00:00 app[web.1]: [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] 11ーー略ーー 122022-05-23T08:54:17.867387+00:00 app[web.1]: [893b8cc0-5f58-4c8f-ae95-9115ce9549f7] vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/thread_pool.rb:135:in `block in spawn_thread' 132022-05-23T08:54:17.867867+00:00 heroku[router]: at=info method=GET path="/places?place%5Baddress%5D=%E6%97%A5%E6%9C%AC%E3%80%81%E3%80%92333-0842+%E5%9F%BC%E7%8E%89%E7%9C%8C%E5%B7%9D%E5%8F%A3%E5%B8%82%E5%89%8D%E5%B7%9D%EF%BC%94%E4%B8%81%E7%9B%AE%EF%BC%94%EF%BC%95%E2%88%92%EF%BC%91%EF%BC%91&place%5Blatitude%5D=35.8370795&place%5Blongitude%5D=139.7098658&place%5Bname%5D=%E7%84%BC%E9%B3%A5%E3%81%AE%E3%82%B9%E3%82%A8%E3%83%92%E3%83%AD&place%5Bplace_id%5D=ChIJNWOOxcKUGGARPHuBNA6Bqoo&place%5Bprice_level%5D=&place%5Brating%5D=4&place%5Buser_id%5D=4" host=blooming-eyrie-90060.herokuapp.com request_id=893b8cc0-5f58-4c8f-ae95-9115ce9549f7 fwd="103.3.6.238" dyno=web.1 connect=0ms service=7ms status=404 bytes=1902 protocol=https 14

おそらくどこかでPlacesが初期化できていない?と思っていますがどこが原因か全くわからず困っています。
エラー発生原因としては

home.html.erb

1<%if user_signed_in?%> 2 <%= link_to( '登録', places_path( :place => { :user_id => @user, 3 :name => @client.spot(place.place_id, :language => 'ja').name, 4 :latitude => place.lat, 5 :longitude => place.lng, 6 :price_level => place.price_level, 7 :rating => place.rating, 8 :place_id => place.place_id, 9 :address => @client.spot(place.place_id, :language => 'ja').formatted_address, } ), 10 class:"btn btn-success register col-lg-12 mt-3 p-2" , 11 :method => 'post' )%> 12 <%else%> 13 <%= link_to new_user_session_path do%> 14 <div><p class="btn btn-success col-lg-12 mt-3 p-2" >ログイン</p></div> 15 <%end%> 16 <%end%>

この登録ボタンを押したときに上記のエラーが発生しています。

places_controller.rb

1class PlacesController < ApplicationController 2 3def create 4 @place = Place.new(place_params) 5 6 respond_to do |format| 7 if @place.save 8 format.html { redirect_to my_places_todo_path, notice: "#{@place.name} の位置情報を保存しました" } 9 else 10 format.html { render :index, notice: "#{@place.name} の位置情報を保存できませんでした" } 11 end 12 end 13 end 14 15private 16 # Never trust parameters from the scary internet, only allow the white list through. 17 def place_params 18 params.require(:place).permit(:user_id, :name, :latitude, :longitude, :address, :price_level, :rating, :place_id) 19 end 20end

routes.rb

1Rails.application.routes.draw do 2 3 #place 4 namespace :places do 5 # get 'place/list' request 6 get 'home' 7 end 8 resources :places, :only => [ :index, :create, :destroy ,:home] 9 # 記事詳細表示のルーティングにネスト 10 resources :places, expect: [:index] do 11 resource :favorites, only: [:create, :destroy] 12 end 13 14#user 15 devise_for :users, controllers: { 16 sessions: "users/sessions", 17 registrations: "users/registrations" 18 } 19 # マイページのルーティングにネスト 20 resources :users, only: [:show, :edit, :update] do 21 get :favorites, on: :collection 22 end 23 #トップページをログイン画面に 24 devise_scope :user do 25 root "users/sessions#new" 26 end 27 get '/users/sign_out' => 'devise/sessions#destroy' 28 get 'users/show' 29 30end

正直何が原因かよくわからず、どこのファイルを見ればよいかわからない状態です。
調べてもcontrollerに関するuninitialized constantばかりで解決できませんでした。
お力貸していただければと思います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

routes での places の定義が重複し矛盾しています。
これをまず整理しましょう。

投稿2022/05/24 23:09

winterboum

総合スコア23284

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

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

ryota5656

2022/05/26 02:30

routesのplacesの矛盾を解決したら無事にエラーが解消されました。 routesの理解度を深めていきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問