現在、家計簿アプリを開発中なのですが、prev_month、next_monthで前月以前のテーブルを見れるようにしており、また、次月以降のテーブルも見れるようにしているのですが、例えば、5ヶ月前のテーブルを表示したいとなった場合、prev_monthで一つずつ月を遡らないといけない為、これを年月を検索してすぐに表示できるようにしたいと考えております。
以下に画像添付いたします。ご教授お願い致します。
下記は、追記で一ヶ月ごとに月のデータを見れるようにしてあります。
<div class="btn-users-show"> <%= link_to "⇦ 前月へ", user_path(date: @first_day.prev_month), class: "btn btn-info" %> <%= link_to "1ヶ月の家計簿編集へ", household_account_books_edit_one_month_user_path(date: @first_day), class: "btn btn-success" %> <%= link_to "次月へ ⇨", user_path(date: @first_day.next_month), class: "btn btn-info" %> </div>
固定費画面
def show @household_account_book = @user.household_account_books.find_by(worked_on: @first_day) end
一ヶ月分のデータ取得するコントローラ
def set_one_month @first_day = params[:date].nil? ? Date.current.beginning_of_month : params[:date].to_date @last_day = @first_day.end_of_month one_month = [*@first_day..@last_day] # 対象の月の日数を代入します。 # ユーザーに紐付く一ヶ月分のレコードを検索し取得します。 @household_account_books = @user.household_account_books.where(worked_on: @first_day..@last_day).order(:worked_on) unless one_month.count == @household_account_books.count # それぞれの件数(日数)が一致するか評価します。 ActiveRecord::Base.transaction do # トランザクションを開始します。 # 繰り返し処理により、1ヶ月分の勤怠データを生成します。 one_month.each { |day| @user.household_account_books.create!(worked_on: day) } end @household_account_books = @user.household_account_books.where(worked_on: @first_day..@last_day).order(:worked_on) end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。