seedsファイルの一部データしか本番環境(Heroku)のDBに登録出来ないエラーに直面しています…。
掲題のエラーが発生してしまい、実現したい機能がWebアプリに盛り込めず困っています。
実現したい機能の内容としては、ransack(gem)を活用した検索機能です。
旅行先(沖縄や京都など)を選択すると、旅行先に応じておすすめの飲食店や宿泊施設が表示される機能を実現したいのですが、
京都に関するデータしか、本番環境のDBに登録されない為、京都以外の旅行先は検索結果が表示されないという状況です。
現状について
・開発環境ではseedファイルの登録は問題なく行え、上記機能を実現できている。
・本番環境ではseedファイルの登録は一部データしか行えず、上記機能を実現できていない。但し検索機能以外は開発環境と同様に問題なく動作する。
発生している問題・エラーメッセージ
下記はseedファイルを取り込んだ際のスクショです。
”旅行先(沖縄や京都など)のデータ”と”京都に関する詳細データ”の取り込みには成功しているのですが、
その他地域の詳細データの取り込みには失敗してしまいます。
エラーに対する仮設
旅行先の詳細データは"category_id=4"の京都のみ取り込めているので、"category_id=4"のみ取り込むような条件設定をしてしまっているのかと仮設立てています。
但し、そのような条件設定をコードに盛り込んだ覚えはない為、今後どうすれば良いか検討がつかない状況です。
因みに、HerokuのDBリセットは下記コードを入力し実行済みです。
$ heroku run rails db:migrate:reset DISABLE_DATABASE_ENVIRONMENT_CHECK=1
該当のソースコード
【db/seeds.rb】
Category.create(name:'沖縄') Category.create(name:'大阪') Category.create(name:'北海道') Category.create(name:'京都') Category.create(name:'奄美大島') Category.create(name:'淡路島') Spot.create(name:'星のや竹富島ダイニング' ,url:'https://tabelog.com/okinawa/A4705/A470502/47015876/' ,genre:'飲食店' ,category_id:'1') Spot.create(name:'アイリッシュパブ ハウディ' ,url:'https://tabelog.com/okinawa/A4703/A470304/47026240/' ,genre:'飲食店' ,category_id:'1') Spot.create(name:'沖縄創作居酒屋 天の川食堂 てぃんがーら' ,url:'https://tabelog.com/okinawa/A4702/A470202/47015024/' ,genre:'飲食店' ,category_id:'1') Spot.create(name:'青の洞窟ボート体験ダイビング&絶叫ウォータートイ' ,url:'https://okinawa-hiside.com/course/course-3724/' ,genre:'アクティビティ' ,category_id:'1') Spot.create(name:'ATV四駆バギー' ,url:'https://sotoasobi.net/activity/atv/10/47/84/346?utm_campaign=outfitter&utm_source=10/47/blog/okinawa-recommend-activity' ,genre:'アクティビティ' ,category_id:'1') Spot.create(name:'パラセーリング' ,url:'https://sotoasobi.net/activity/parasailing/10/47/111/466?utm_campaign=outfitter&utm_source=10/47/blog/okinawa-recommend-activity' ,genre:'アクティビティ' ,category_id:'1') Spot.create(name:'オクマ プライベートビーチ & リゾート' ,url:'https://www.ikyu.com/00000603/' ,genre:'宿泊施設' ,category_id:'1') Spot.create(name:'石垣シーサイドホテル' ,url:'https://www.ikyu.com/caz/00030755/' ,genre:'宿泊施設' ,category_id:'1') Spot.create(name:'名蔵ヴィレッジ' ,url:'https://www.ikyu.com/caz/00030755/' ,genre:'宿泊施設' ,category_id:'1') Spot.create(name:'ぎん庵 心斎橋' ,url:'https://tabelog.com/osaka/A2701/A270201/27101223/' ,genre:'飲食店' ,category_id:'2') Spot.create(name:'翁' ,url:'https://tabelog.com/osaka/A2701/A270201/27018866/' ,genre:'飲食店' ,category_id:'2') Spot.create(name:'お好み 鉄板 居酒屋 DON' ,url:'https://tabelog.com/osaka/A2701/A270202/27058467/?lid=chikakunoomise' ,genre:'飲食店' ,category_id:'2') Spot.create(name:'パナソニックミュージアム' ,url:'https://www.panasonic.com/jp/corporate/history/panasonic-museum.html' ,genre:'アクティビティ' ,category_id:'2') Spot.create(name:'VS PARK' ,url:'https://bandainamco-am.co.jp/others/vspark/' ,genre:'アクティビティ' ,category_id:'2') Spot.create(name:'ユニバーサルスタジオジャパン' ,url:'https://www.usj.co.jp/web/ja/jp' ,genre:'アクティビティ' ,category_id:'2') Spot.create(name:'THE SINGULARI HOTEL & SKYSPA at Universal Studios Japan' ,url:'https://www.jalan.net/yad332153/' ,genre:'宿泊施設' ,category_id:'2') Spot.create(name:'大江戸温泉物語 箕面観光ホテル' ,url:'https://travel.biglobe.ne.jp/hotel/h013027/plan/?pn=10000&px=20000' ,genre:'宿泊施設' ,category_id:'2') Spot.create(name:'スパワールド 世界の大温泉' ,url:'https://travel.biglobe.ne.jp/hotel/h012745/plan/?pn=10000&px=20000' ,genre:'宿泊施設' ,category_id:'2') Spot.create(name:'海だより' ,url:'https://tabelog.com/hokkaido/A0101/A010201/1027865/' ,genre:'飲食店' ,category_id:'3') Spot.create(name:'サッポロビール園 ジンギスカンホール' ,url:'https://tabelog.com/hokkaido/A0101/A010202/1000159/' ,genre:'飲食店' ,category_id:'3') Spot.create(name:'カリーヤ!コング' ,url:'https://tabelog.com/hokkaido/A0101/A010104/1029696/' ,genre:'飲食店' ,category_id:'3') Spot.create(name:'ガイド1日チャーター ネイチャーウォッチング' ,url:'https://gurutabi.gnavi.co.jp/p/p_7849/' ,genre:'アクティビティ' ,category_id:'3') Spot.create(name:'サバイバルゲーム&ジンギスカン BBQ食べ飲み放題' ,url:'https://gurutabi.gnavi.co.jp/p/p_10014/' ,genre:'アクティビティ' ,category_id:'3') Spot.create(name:'プライベートサイクリングツアー(SAN)SAPPORO ACTIVE NAVIGATION' ,url:'https://www.jalan.net/kankou/spt_guide000000180996/activity/l00002B191/?showplan=spot_detail_calendar&screenId=OUW2201&influxKbn=0' ,genre:'アクティビティ' ,category_id:'3') Spot.create(name:'ポラリス' ,url:'https://www.jalan.net/yad300923/' ,genre:'宿泊施設' ,category_id:'3') Spot.create(name:'十勝まきばの家' ,url:'https://www.jalan.net/yad370681/' ,genre:'宿泊施設' ,category_id:'3') Spot.create(name:'ぬくもりの宿 ふる川' ,url:'https://www.jalan.net/yad321633/' ,genre:'宿泊施設' ,category_id:'3') Spot.create(name:'ぎおん徳屋' ,url:'https://tabelog.com/kyoto/A2601/A260301/26002075/' ,genre:'飲食店' ,category_id:'4') Spot.create(name:'豆水楼' ,url:'https://tabelog.com/kyoto/A2601/A260202/26001548/' ,genre:'飲食店' ,category_id:'4') Spot.create(name:'月の蔵人' ,url:'https://tabelog.com/kyoto/A2601/A260601/26002346/' ,genre:'飲食店' ,category_id:'4') Spot.create(name:'舞妓さん お昼のお座敷体験' ,url:'https://www.veltra.com/jp/japan/kyoto/a/155894' ,genre:'アクティビティ' ,category_id:'4') Spot.create(name:'和菓子手作り体験' ,url:'https://www.veltra.com/jp/japan/kyoto/a/115369' ,genre:'アクティビティ' ,category_id:'4') Spot.create(name:'京都の世界遺産3ヶ所バスツアー' ,url:'https://www.veltra.com/jp/japan/kyoto/a/16714' ,genre:'アクティビティ' ,category_id:'4') Spot.create(name:'ホテルインターゲート京都' ,url:'https://www.ikyu.com/biz/00081435/?ppc=4' ,genre:'宿泊施設' ,category_id:'4') Spot.create(name:'晴鴨櫻' ,url:'https://www.ikyu.com/00001120/?ppc=4' ,genre:'宿泊施設' ,category_id:'4') Spot.create(name:'ホテルウィングインターナショナル京都四条烏丸' ,url:'https://www.ikyu.com/biz/00081551/?ppc=4' ,genre:'宿泊施設' ,category_id:'4') Spot.create(name:'AMAネシア' ,url:'https://tabelog.com/kagoshima/A4605/A460502/46001368/' ,genre:'飲食店' ,category_id:'5') Spot.create(name:'居酒屋脇田丸' ,url:'https://tabelog.com/kagoshima/A4605/A460502/46007680/' ,genre:'飲食店' ,category_id:'5') Spot.create(name:'鯨石庵' ,url:'https://tabelog.com/kagoshima/A4605/A460502/46001340/' ,genre:'飲食店' ,category_id:'5') Spot.create(name:'セグウェイマングローブ散策ツアー' ,url:'https://activityjapan.com/publish/plan/25789' ,genre:'アクティビティ' ,category_id:'5') Spot.create(name:'フルオープン4WDナイトサファリツアー' ,url:'https://activityjapan.com/publish/plan/29599' ,genre:'アクティビティ' ,category_id:'5') Spot.create(name:'秘境ビーチでBBQ' ,url:'https://activityjapan.com/publish/plan/28006' ,genre:'アクティビティ' ,category_id:'5') Spot.create(name:'ホテルカレッタ' ,url:'https://www.jtb.co.jp/kokunai_hotel/htl/8632017/plan/?hotellistsort=recommend&staynight=1&room=1&roomassign=m4&mapdisp=0&planinfokeywordon=1&tyfilteron=1&tycode=obeya&rawareaname=460606&area=460606&temproomassign=1' ,genre:'宿泊施設' ,category_id:'5') Spot.create(name:'いも~れ奄美民泊村' ,url:'https://amami-minpaku-mura.com/#section0' ,genre:'宿泊施設' ,category_id:'5') Spot.create(name:'奄美リゾート ばしゃ山村' ,url:'https://www.tripadvisor.jp/Hotel_Review-g1022937-d1060631-Reviews-Amami_Resort_Bashayamamura-Amami_Kagoshima_Prefecture_Kyushu.html' ,genre:'宿泊施設' ,category_id:'5') Spot.create(name:'うずしおレストラン' ,url:'https://tabelog.com/hyogo/A2806/A280603/28002378/' ,genre:'飲食店' ,category_id:'6') Spot.create(name:'シーアイガ海月' ,url:'https://tabelog.com/hyogo/A2806/A280602/28043195/' ,genre:'飲食店' ,category_id:'6') Spot.create(name:'鯨石庵' ,url:'https://tabelog.com/hyogo/A2806/A280601/28049921/' ,genre:'飲食店' ,category_id:'6') Spot.create(name:'ニンゲンノモリ' ,url:'https://nijigennomori.com/' ,genre:'アクティビティ' ,category_id:'6') Spot.create(name:'淡路ワールドパーク' ,url:'https://www.onokoro.jp/' ,genre:'アクティビティ' ,category_id:'6') Spot.create(name:'ジェットボート' ,url:'https://activityjapan.com/publish/plan/9546' ,genre:'アクティビティ' ,category_id:'6') Spot.create(name:'グランシャリオ北斗七星135℃' ,url:'https://awaji-grandchariot.com/' ,genre:'宿泊施設' ,category_id:'6') Spot.create(name:'淡路島マンモス' ,url:'https://awajimammoth.com/' ,genre:'宿泊施設' ,category_id:'6') Spot.create(name:'淡路島ホテル・ロッジ GREEN COZY' ,url:'https://green-cozy.com/' ,genre:'宿泊施設' ,category_id:'6')
関連するソースコード
【controllers/spots_controller.rb】
class SpotsController < ApplicationController before_action :search_spot, only: [:index, :search] def index @spots = Spot.all set_category_column end def search @results = @p.result.includes(:category) end private def search_spot @p = Spot.ransack(params[:q]) end def set_category_column @category_name = Category.select("name").distinct end end
【views/spots/index.html.erb】
<h1>男気スポット検索</h1> <%= search_form_for @p, url: spots_search_path do |f| %> <div class='search-select'> <%= f.label :category_name_eq, '旅行してみたい地域' %> </div> <div class='search-form'> <%= f.collection_select :category_name_eq, @category_name, :name, :name, include_blank: '指定なし', autofocus: true %> </div> <div class='search-button'> <%= f.submit '検索' %> </div> <% end %>
【views/spots/search.html.erb】
<h1>男気スポット検索結果</h1> <div class='search-result'> <% if @results.length !=0 %> <% @results.each do |result| %> <td> <br> <li> <%= link_to result.name,result.url %> 【<%= result.category.name %>】 (<%= result.genre %>) </li> <% end %> <% else %> 該当する情報はありません <% end %> </div> <div class='top-page-link'> <%= link_to 'トップページへ戻る', root_path %> </div>
補足情報(FW/ツールのバージョンなど)
ruby 2.6.5p114
Rails 6.0.3.6
mysql Ver 14.14
heroku/7.51.0 darwin-x64 node-v12.21.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/07 04:31 編集
2021/05/07 10:14