質問編集履歴

2

コントローラを追加いたしました。

2021/05/29 00:32

投稿

sh11821783
sh11821783

スコア0

test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,55 @@
23
23
  </div>
24
24
 
25
25
  ```
26
+
27
+ 固定費画面
28
+
29
+ ```ここに言語を入力
30
+
31
+ def show
32
+
33
+ @household_account_book = @user.household_account_books.find_by(worked_on: @first_day)
34
+
35
+ end
36
+
37
+ ```
38
+
39
+
40
+
41
+ 一ヶ月分のデータ取得するコントローラ
42
+
43
+ ```ここに言語を入力
44
+
45
+ def set_one_month
46
+
47
+ @first_day = params[:date].nil? ?
48
+
49
+ Date.current.beginning_of_month : params[:date].to_date
50
+
51
+ @last_day = @first_day.end_of_month
52
+
53
+ one_month = [*@first_day..@last_day] # 対象の月の日数を代入します。
54
+
55
+ # ユーザーに紐付く一ヶ月分のレコードを検索し取得します。
56
+
57
+ @household_account_books = @user.household_account_books.where(worked_on: @first_day..@last_day).order(:worked_on)
58
+
59
+
60
+
61
+ unless one_month.count == @household_account_books.count # それぞれの件数(日数)が一致するか評価します。
62
+
63
+ ActiveRecord::Base.transaction do # トランザクションを開始します。
64
+
65
+ # 繰り返し処理により、1ヶ月分の勤怠データを生成します。
66
+
67
+ one_month.each { |day| @user.household_account_books.create!(worked_on: day) }
68
+
69
+ end
70
+
71
+ @household_account_books = @user.household_account_books.where(worked_on: @first_day..@last_day).order(:worked_on)
72
+
73
+ end
74
+
75
+
76
+
77
+ ```

1

より詳しく質問をするために、月の切り替え部分のコードを添付致しました。

2021/05/29 00:31

投稿

sh11821783
sh11821783

スコア0

test CHANGED
File without changes
test CHANGED
@@ -3,3 +3,23 @@
3
3
  以下に画像添付いたします。ご教授お願い致します。
4
4
 
5
5
  ![イメージ説明](cbbe78944c041806298fd1146d20f4a5.jpeg)
6
+
7
+
8
+
9
+
10
+
11
+ 下記は、追記で一ヶ月ごとに月のデータを見れるようにしてあります。
12
+
13
+ ```ここに言語を入力
14
+
15
+ <div class="btn-users-show">
16
+
17
+ <%= link_to "⇦ 前月へ", user_path(date: @first_day.prev_month), class: "btn btn-info" %>
18
+
19
+ <%= link_to "1ヶ月の家計簿編集へ", household_account_books_edit_one_month_user_path(date: @first_day), class: "btn btn-success" %>
20
+
21
+ <%= link_to "次月へ ⇨", user_path(date: @first_day.next_month), class: "btn btn-info" %>
22
+
23
+ </div>
24
+
25
+ ```