予約表を作っているのですが、ログインユーザーにだけ予約表でユーザーの名前を表示させたいです。
他のユーザーにはユーザーの名前でなく”予約済み”と表示させるような条件分岐を書きたいです。
自分なりに考え、試しに、
view
1<% @time0900 = "予約済みです" if !(@time0900 == current_user)%>
とviewに書いてみたのでが、うまくいきませんでした。
あと、条件分岐はviewにもかけると思うのですが、こういう分岐はコントローラーに書く方が良いのでしょうか?
よろしくお願いします。
view
1 <tr> 2 <td>9:00~9:30</td> 3 <% if @time0900.count == 4 %> 4 <% @time0900.each do |f| %><td><%= f.user_name %></td><% end %> 5 6 <% elsif @time0900.count == 3 %> 7 <% @time0900.each do |f| %><td><%= f.user_name %></td><% end %><td>予約可能です</td> 8 9 <% elsif @time0900.count == 2 %> 10 <% @time0900.each do |f| %><td><%= f.user_name %></td><% end %><td>予約可能です</td><td>予約可能です</td> 11 12 <% elsif @time0900.count == 1 %> 13 <% @time0900.each do |f| %><td><%= f.user_name %></td><% end %><td>予約可能です</td><td>予約可能です</td><td>予約可能です</td> 14 15 <% else %><td>予約可能です</td><td>予約可能です</td><td>予約可能です</td><td>予約可能です</td><% end %> 16 </tr>
controller
1class TimetablesController < ApplicationController 2 def timetable_index 3 @timetables = Timetable.all 4 @time0900 = Timetable.where(hour: "9", minute: "00") 5 @time0930 = Timetable.where(hour: "9", minute: "30") 6 @time1000 = Timetable.where(hour: "10", minute: "00") 7 @time1030 = Timetable.where(hour: "10", minute: "30") 8 @time1100 = Timetable.where(hour: "11", minute: "00") 9 @time1130 = Timetable.where(hour: "11", minute: "30") 10 @time1200 = Timetable.where(hour: "12", minute: "00") 11 @time1230 = Timetable.where(hour: "12", minute: "30") 12 @time1500 = Timetable.where(hour: "15", minute: "00") 13 @time1530 = Timetable.where(hour: "15", minute: "30") 14 @time1600 = Timetable.where(hour: "16", minute: "00") 15 @time1630 = Timetable.where(hour: "16", minute: "30") 16 @time1700 = Timetable.where(hour: "17", minute: "00") 17 @time1730 = Timetable.where(hour: "17", minute: "30") 18 @time1800 = Timetable.where(hour: "18", minute: "00") 19 @time1830 = Timetable.where(hour: "18", minute: "30") 20 @time1900 = Timetable.where(hour: "19", minute: "00") 21 @time1930 = Timetable.where(hour: "19", minute: "30") 22 end 23 24 def new 25 @timetable = Timetable.new 26 end 27 28 def create 29 @timetable = Timetable.new(user_id: current_user.id, user_name: current_user.name, date: timetable_params[:date], hour: timetable_params[:hour], minute: timetable_params[:minute]) 30 if @timetable.save 31 flash[:success] = "ご予約ありがとうございます" 32 redirect_to root_path 33 else 34 flash[:success] = "申し訳ございません。予約を受け付けられませんでした" 35 redirect_to root_path 36 end 37 end 38 39 def show 40 @time0900 = Timetable.find() 41 end 42 43 def destroy 44 end 45 46 private 47 def timetable_params 48 params.require(:timetable).permit(:user_id, :user_name, :date, :hour, :minute) 49 end 50end 51
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/16 13:30
2020/02/16 14:03
2020/02/16 14:04
2020/02/16 14:44
2020/02/16 14:45