前提・実現したいこと
RoRでデートプラン投稿アプリを開発しています。
親子関係のあるレコードのフォームを作成しました。
上記のレコードに対して「フォームに入力=>確認画面=>登録」という処理を実装しようとしています。
レコード情報
親:dating(デートプラン情報を保持するテーブル)
子:spot(デートプランに含まれる各スポットの情報を保持するテーブル)
発生している問題
「フォームに入力=>登録」という通常の処理は実装出来ましたが、
確認画面を挟んだ場合の実装方法が分かりません。
ググって見ましたがなかなか参考になるページが見つからず質問させていただきました。
該当のソースコード
一部省略しています。
<%= form_for @dating do |f| %> <div class="row"> <h2 class="col-12 mb-1 pl-0"> <%= @dating.dating_theme %> <%= f.hidden_field :dating_theme %> </h2> </div> <p class="col-12 mb-0"> <i class="fa fa-map-marker icon date-detail-explain"></i><span><%= Prefecture.find(@dating.prefecture_code).prefecture_name %></span> <%= f.hidden_field :prefecture_code %> </p> <p class="col-12 mb-0"> <i class="far fa-eye icon date-detail-explain"></i><span>26</span><span>views</span> </p> <p class="col-12 mb-0"> <i class="fas fa-search icon date-detail-explain"></i><span><%= @dating.tag %></span> <%= f.hidden_field :tag %> </p> <p class="col-12 mb-0"> <i class="fas fa-yen-sign icon date-detail-explain"></i><span><%= @dating.cost %></span> <%= f.hidden_field :cost %> </p> <p class="col-12 mb-0"> <i class="icon ion-android-time icon date-detail-explain"></i><span><%= @dating.time %></span> <%= f.hidden_field :time %> </p> ####ここのfields_forの中の書き方が分からないです、、、一旦下記のように書いています。 <%= f.fields_for @dating.spots, html: { multipart: true } do |sp| %> <div> <p class="w-100"> <span class="mr-2"> <%= @spot.time %> <%= sp.hidden_field :time %> </span> <%= @spot.spot_name %> <%= sp.hidden_field :spot_name %> </p> <img src=<%= @spot.spot_pic %> class="date-detail-pic"> <%= sp.hidden_field :spot_pic %> <a href="#" target="_blank"> <%= @spot.url %> <%= sp.hidden_field :url %> </a> <p> <%= @spot.comment %> <%= sp.hidden_field :comment %> </p> </div> <% end %> <div class="float-right"> <%= f.submit 'Back!', name: 'back' %> <%= f.submit '投稿する' %> </div> <% end %>
エラーメッセージ
undefined method `time' for nil:NilClass
<%= @spot.time %>の@spotがないのが原因なのはわかっていますが、実装方法が分かりません。
参考にしたページ
親子レコードのフォーム実装は以下のページを参考にさせていただきました。
https://qiita.com/shizuma/items/5bfcf6c1e855b959e135
確認画面の実装は以下のページを参考にさせていただきました。
https://remonote.jp/rails-confirm-form
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/09 13:49
2019/01/10 01:35
2019/01/12 05:46
2019/01/13 11:12
2019/01/14 06:02
2019/01/14 23:27