前提・実現したいこと
練習で簡易的な予約システム的なものを実装しています。
あらかじめ、予約できる日、時間、コースの各テーブル作成し、セレクトボックスにて、選択した項目をBookDateのテーブルに送りたい。
発生している問題・エラーメッセージ
NoMethodError in BookTimes#show undefined method `strftime' for nil:NilClass
該当のソースコード
html
1<!-- index.html.erb --> 2<div class="content"> 3 4<%= form_tag('/show', method: :post) do %> 5 6<div class="cp_ipselect cp_sl01"> 7<select required> 8 <% @date.each do |dates| %> 9 <option value="" hidden>予約日</option> 10 <option value="1"><%= dates.course_date.strftime("%Y年%m月%d日") %></option> 11 <% end %> 12</select> 13</div> 14 15<div class="cp_ipselect cp_sl01"> 16<select required> 17 <% @time.each do |time| %> 18 <option value="" hidden>予約時間</option> 19 <option value="1"><%= time.reservation_time.strftime("%H:%M") %></option> 20 <% end %> 21</select> 22</div> 23 24<div class="cp_ipselect cp_sl01"> 25<select required> 26 <% @course.each do |courses| %> 27 <option value="" hidden>コース名</option> 28 <option value="1"><%= courses.course_name %></option> 29 <% end %> 30</select> 31</div> 32 33<input type="submit" value="確定する"> 34<% end %> 35</div>
html
1show.html.erb 2<table class="table"> 3 <tr> 4 <td>予約日</td> 5 <td>コース名</td> 6 <td>時間</td> 7 <td colspan="2">承認</td> 8 </tr> 9 <% @book.each do |books| %> 10 <tr> 11 <td><%= books.rc_date.strftime("%Y年%m月%d日") %></td> 12 <td><%= books.rc_name %></td> 13 <td><%= books.r_time.strftime("%H:%M") %></td> 14 <td>YES</td> 15 <td>NO</td> 16 </tr> 17 <% end %> 18</table>
ruby
1#routers 2Rails.application.routes.draw do 3 root to: 'book_times#index' 4 get '/new' => 'book_times#new' 5 get '/show' => 'book_times#show' 6 post '/show' => 'book_times#create' 7 # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 8end
ruby
1#book_times_controller 2class BookTimesController < ApplicationController 3 def index 4 @time = BookTime.select("reservation_time") 5 @course = BookCourse.select("course_name") 6 @date = BookDate.select("course_date") 7 end 8 9 def new 10 end 11 12 def show 13 @book = Book.all 14 end 15 def create 16 Book.create(book_params) 17 end 18 19 private 20 def book_params 21 params.permit(:rc_date, :rc_name, :r_time) 22 end 23end
試したこと
viewでは一応データを送ることまでは出来たのですが、テーブルを見るとどこにも送られていませんでした。
テーブルのデータを他のテーブルに送るやりかたが分からなくて困っています。学習しているprogateでは私がやりたい実装がカリキュラムになかったのでご教授していただけたら幸いです。
補足情報(FW/ツールのバージョンなど)
ruby on rails 5.2.1
mysql
あなたの回答
tips
プレビュー