Railsのnew→createアクションができない
解決したいこと
undefined method `map' for nil:NilClass
container.map do |element|
^^^^
このエラーの解決をしたいです。
現在Rails6.1.3.2を使用し、CRUD機能を使ってお店の口コミ登録のようなWebアプリを作成しております。
お店を新規登録する際に、
・店名
・住所
・国(どこの国の料理が食べられるのか)
・メモ(任意)
・画像(任意)
これらの情報を入力し、登録をする場面でエラーが出ています。
解決方法を教えていただけると助かります。
発生している問題・エラー
undefined method `map' for nil:NilClass
container.map do |element|
^^^^
該当するソースコード
<div class="listing-form-box">
<div class="listing-restaurant-detail__country">
<%= f.label 'カテゴリー', class: 'listing-default__label' %>
<span class="listing-default--require">必須</span>
<div class="listing-select-wrapper">
<div class="listing-select-wrapper__box">
<%= f.select :country_id, country_parent_array, {}, {class: 'listing-select-wrapper__box--select', id: 'parent_country'} %>
<i class="fas fa-chevron-down listing-select-wrapper__box--arrow-down"></i>
</div>
</div>
</div>
</div>
このコードの書くにあたって参考にしたこと
このコードは、下記の記事を参考にコーディングしました。
https://qiita.com/ATORA1992/items/bd824f5097caeee09678
また、国のカラムはancestryというgemを使用して多階層に分類分けをしています。
その他jbuilderのファイルや、.jsのファイルも記事を参考に同様に設定をしています。
RestaurantはCountryを1つしか紐付けできないように設定し、1つのCountryはいろんなRestaurantに紐付けることが可能なので、 CountryとRestaurantは多:1 でリレーションを組んでいます。
自分で試したこと
pryを使って、エラーの原因となっているcountry_parent_arrayの中身を確認しました。
初めにrestaurants/newのページを開くときは、country_parent_arrayに、parentとして設定している["アジア", "ヨーロッパ", "アフリカ", "ロシア・NIS諸国", "オセアニア", "北米", "中南米"]が入っています。
その後、お店の情報を入れて登録ボタンを押し、pryでcountry_parent_arrayを見るとnilになっています。
これがなぜ起きているのかがわかっていません。
パラメータで送る情報の設定などが間違っているのかなと思いましたが、登録するときはcountry_parent_arrayに当たるparent_countryの値("アジア", "ヨーロッパ", "アフリカ", "ロシア・NIS諸国", "オセアニア", "北米", "中南米"のいずれか)は必ず入っているので、どうしてnilになるのかが分かりません。
他に足りない情報などがございましたら教えていただけますと幸いです。
初学者ゆえ大変初歩的な質問で恐れ入りますが、何卒よろしくお願いいたします…