前提・実現したいこと
Railsでページごとにカレンダー表を実装した日程表のシステムを作っています。(Simple Calendarのgemを用いています。)
カレンダー毎に紐付いた予定を追加する機能を実装したいのですが、予定を追加した所全てのカレンダーに予定が反映されてしまいます。
発生している問題・エラーメッセージ
例;予定を追加で、「テスト」というtitle名で追加した時、別ページのカレンダーにも「テスト」と表示される。
該当のソースコード
↓_main_event.html.erb(index.html.erbから呼び出している。)
Ruby
1<div class="event-header"> 2 <div class=event-name>hogefuga</div> 3 <div class="event-destroy"> 4 <%= link_to 'チャットを終了する', '#' %> 5 </div> 6</div> 7 8<div class="event-main"> 9 <div class="plan-create"> 10 <%= link_to '予定を追加', new_department_event_path %> 11 </div> 12 <div class="calendar"> 13 <%# カレンダ表 %> 14 <%= month_calendar events: @events do |date, events| %> 15 <%= date.day %> 16 <%# カレンダー予定追加 %> 17 <% events.each do |event| %> 18 <div class="create-title"> 19 <%= event.title %> 20 </div> 21 <% end %> 22 <%#/ カレンダー予定追加 %> 23 <% end %> 24 <%#/ カレンダー表 %> 25 </div> 26 <div class="comment"> 27 <div class="comment-user"> 28 <div class="comment-user-name"> 29 Tom 30 </div> 31 <div class="current-time"> 32 2020/3/31(Wed) 12:43:30 33 </div> 34 </div> 35 <div class="comment-content"> 36 おはよう 37 </div> 38 </div> 39 <div class="comment"> 40 <div class="comment-user"> 41 <div class="comment-user-name"> 42 Tom 43 </div> 44 <div class="current-time"> 45 2020/3/31(Wed) 18:43:30 46 </div> 47 </div> 48 <div class="comment-content"> 49 こんばんわ 50 </div> 51 </div> 52</div> 53 54<div class="form"> 55 <div class="form-comment"> 56 <input type="text" placeholder="type a message" class="form-input" > 57 <label class="form-image"> 58 <span class="image-file">画像</span> 59 <input type="file" class="hidden"> 60 </label> 61 </div> 62 <input type="submit" value="送信" class="form-submit"> 63</div>
↓EventsController
Ruby
1class EventsController < ApplicationController 2 3 def index 4 @departments = Department.all 5 @events = Event.all 6 end 7 8 def new 9 @events = current_user.events 10 @department = Department.find(params[:department_id]) 11 end 12 13 def create 14 @department = Department.find(params[:department_id]) 15 @events = @department.events.new(event_params) 16 if @events.save 17 redirect_to department_events_path(@department.id) 18 else 19 redirect_to new_department_event_path 20 end 21 end 22 23 private 24 25 def event_params 26 params.require(:event).permit(:title, :content, :start_time, department_ids: []).merge(user_id: current_user.id) 27 end 28 29end 30
↓department_eventモデル
Ruby
1class DepartmentEvent < ApplicationRecord 2 belongs_to :event 3 belongs_to :department 4end
↓departmentモデル
Ruby
1class Department < ApplicationRecord 2 has_many :department_events 3 has_many :events, through: :department_events 4 validates :name, presence: true 5end
↓eventモデル
Ruby
1class Event < ApplicationRecord 2 belongs_to :user 3 has_many :department_events 4 has_many :departments, through: :department_events 5end 6
試したこと
現在EventsController・indexアクションにて、下記の様に記述しておりますが、これだと「全てのイベント情報」の値を変数に渡しているのでこれを「このページに紐付いたイベント情報のみ」の値を渡すように記述したいのですが試行錯誤致しましたが解決に至りませんでした。
Ruby
1@events = Event.all
補足情報
↓index.html.erb
Ruby
1<div class="wrapper"> 2 <div class="side-bar"> 3 <%= render "side_bar" %> 4 </div> 5 <div class="event"> 6 <%= render "main_event" %> 7 </div> 8</div>
回答1件
あなたの回答
tips
プレビュー