前提・実現したいこと
rails6でシンプルカレンダーでシフトを登録すると、カレンダーに表示されるようにしたい。
データベースは、postgreSQLで情報は入っています。
カレンダーにだけ表示されないです。
該当のソースコード
index.html.erb
1<div class="main"> 2 <%= render partial: 'shared/header' %> 3 <%= link_to new_shift_path do %> 4 <button type="button" class="btn btn-primary">シフト提出</button> 5 <% end %> 6 <button type="button" class="btn btn btn-warning">シフト編集</button> 7 8 <% @shifts.each do |shift| %> 9 <%= shift.start_time.strftime("%Y-%m-%d %H:%M") %> 10 <%= link_to 'Show', shift %> 11 <%= link_to 'Edit', edit_shift_path(shift.id) %> 12 <%= link_to 'Destroy',shift_path(shift.id), method: :delete, data: { confirm: 'Are you sure?' } %> 13 <% end %> 14 15 <%= month_calendar events: @shifts do |date, shifts| %> 16 <%= date.day %> 17 18 <% shifts.each do |shift| %> 19 <div> 20 <%= link_to shift.start_time, shift %> 21 </div> 22 <% end %> 23 <% end %> 24</div> 25
controller
1class ShiftsController < ApplicationController 2 3 def index 4 @users = User.all 5 @shifts = Shift.all 6 end 7 8 def show 9 @users = User.all 10 @shift = Shift.find(params[:id]) 11 end 12 13 def new 14 @shift = Shift.new 15 end 16 17 def create 18 Shift.create(shift_params) 19 redirect_to shifts_path 20 end 21 22 private 23 24 def shift_params 25 params.require(:shift).permit(:start_time, :end_time).merge(user_id: current_user.id) 26 end 27 28end 29
試したこと
ほとんど同じ記述でイベントカレンダーを作成してみると、表示されました。
該当のソースコード
index.html.erb
1<p id="notice"><%= notice %></p> 2 3<h1>イベント</h1> 4 5<table> 6 <thead> 7 <tr> 8 <th>タイトル</th> 9 <th>時間</th> 10 <th colspan="3"></th> 11 </tr> 12 </thead> 13 14 <tbody> 15 <% @events.each do |event| %> 16 <tr> 17 <td><%= event.title %></td> 18 <td><%= event.start_time.strftime("%Y-%m-%d %H:%M") %></td> 19 <td><%= link_to 'Show', event %></td> 20 <td><%= link_to 'Edit', edit_event_path(event.id) %></td> 21 <td><%= link_to 'Destroy',event_path(event.id), method: :delete, data: { confirm: 'Are you sure?' } %></td> 22 </tr> 23 <% end %> 24 </tbody> 25</table> 26 27<br> 28 29<%= link_to 'イベントを入力', new_event_path %> 30 31<%= month_calendar events: @events do |date, events| %> 32 <%= date.day %> 33 34 <% events.each do |event| %> 35 <div> 36 <%= link_to event.title, event %> 37 </div> 38 <% end %> 39<% end %>
controller
1class EventsController < ApplicationController 2 3 def index 4 @events = Event.all 5 end 6 7 def new 8 @event = Event.new 9 end 10 11 def show 12 @event = Event.find(params[:id]) 13 end 14 15 def create 16 Event.create(event_params) 17 redirect_to root_path 18 end 19 20 def edit 21 @event = Event.find(params[:id]) 22 end 23 24 def update 25 @event = Event.find(params[:id]) 26 if @event.update(event_params) 27 redirect_to root_path, notice: "編集しました" 28 else 29 render 'edit' 30 end 31 end 32 33 def destroy 34 @event = Event.find(params[:id]) 35 @event.destroy 36 redirect_to root_path, notice:"削除しました" 37 end 38 39 private 40 41 def event_params 42 params.require(:event).permit(:title, :content, :start_time) 43 end 44end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。