前提・実現したいこと
トレーニング管理機能を実装しています。
そこでトレーニングを日付ごとで管理を予定しており、index画面に実装したsearch機能を用いてその日したトレーニング一覧を見れるような形で作っております。
今回実現したい点に関しては、
indexページを開いたその日の内容一覧が最初に出てくるよう実装がしたいです。
例えば今日(5/15)でいうと、
indexページを開いた場合最初に「5/15」の画面が出るようにしたいです。
5/16にページを開いた場合は5/16の入力一覧が最初に出る形です。
現状
現状の場合だと、最初にindexページを開くと下記のような形でどの日にちにも反応していないような状態になっております。
ここで日付を指定してあげるとその日登録したメニューが反映される仕組みです。
※ちなみにこの画像は5/14に入力したものを反映しております。
search機能を使って、created_atを用いて抽出しております。
コード
rails
1#index.html.erb 2 3<h3>トレーニング記録</h3> 4 <%= form_tag(workoutmenus_path, :method => "get") do %> 5 <%= date_field_tag :search %> 6 <%= submit_tag "Search" ,:created_at => nil ,class: "" %> 7 <% end %> 8 <tr> 9 <th>menu</th> 10 <th>settype</th> 11 <th>weight</th> 12 <th>reps</th> 13 </tr><br> 14<%= render @workoutmenus %> 15<%= link_to "トレーニングを追加する", "/workoutmenus/new", class: "" %> 16
rails
1#workoutmenus_controller.rb 2 3class WorkoutmenusController < ApplicationController 4 5 def index 6 @workoutmenus = params[:search].present? ? Workoutmenu.where('created_at LIKE(?)', "%#{params[:search]}%"): [] 7 end 8 9end
rails
1#workoutmenu.rb 2 3railsclass Workoutmenu < ApplicationRecord 4 5 validates :menu, :settype, :weight, :reps, presence: true 6 7 def self.search(search) 8 if search 9 where(['created_at LIKE ?', "%#{search}%"]) 10 end 11 end 12end 13
説明が難しく上手く理想をお伝えできないのですが、
どなたかお力お貸しいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。