質問編集履歴
8
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -107,7 +107,6 @@
|
|
107
107
|
if @form.save
|
108
108
|
redirect_to refrige_foods_path
|
109
109
|
else
|
110
|
-
flash.now[:alert]
|
111
110
|
render :new
|
112
111
|
end
|
113
112
|
end
|
7
記述修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。
|
4
4
|
■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。■■
|
5
|
-
■■画面でエラーは出ず、保存されない状態です。現在はパラメーターまではデータが届いているようですが、保存されません。■■
|
5
|
+
■■画面でエラーは出ず、保存されない状態です。現在はパラメーターまではデータが届いているようですが、保存されません。**@formにfood_idとrefrige_idが渡っていないのが問題です**■■
|
6
6
|
__**日付がnilになっていた件は解決しました!!(カレンダーから選択にしたらnilが解消しました)**__
|
7
7
|
### 発生している問題・エラーメッセージ
|
8
8
|
●food_collection_paramsの中身
|
6
記述修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。
|
4
4
|
■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。■■
|
5
5
|
■■画面でエラーは出ず、保存されない状態です。現在はパラメーターまではデータが届いているようですが、保存されません。■■
|
6
|
-
|
6
|
+
__**日付がnilになっていた件は解決しました!!(カレンダーから選択にしたらnilが解消しました)**__
|
7
7
|
### 発生している問題・エラーメッセージ
|
8
8
|
●food_collection_paramsの中身
|
9
9
|
12: def create
|
@@ -128,8 +128,8 @@
|
|
128
128
|
### 試したこと
|
129
129
|
|
130
130
|
@formにfood_idとrefrige_idがnilになっている事。
|
131
|
-
日付の値が、一番目のみ値が入り。それ以外はnilになっている事をどう解決すれば良いののか検討中です。
|
132
131
|
attr_accessor :foods, :refrige_id への記述。ストロングパラメーターにも.merge(refrige_id: params[:refrige_id])の記述をしましたが変わりません。
|
132
|
+
まとめずに1レコードずつの保存はできました。@formにfood_idとrefrige_idの渡し方分かる方いらっしゃいませんでしょうか。
|
133
133
|
|
134
134
|
### 補足情報(FW/ツールのバージョンなど)
|
135
135
|
|
5
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。
|
4
4
|
■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。■■
|
5
|
-
■■現在はパラメーターまではデータが届いているようですが、保存されません。■■
|
5
|
+
■■画面でエラーは出ず、保存されない状態です。現在はパラメーターまではデータが届いているようですが、保存されません。■■
|
6
6
|
|
7
7
|
### 発生している問題・エラーメッセージ
|
8
8
|
●food_collection_paramsの中身
|
4
書式の改善
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,10 +30,11 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
#該当コード
|
33
|
-
```
|
34
33
|
|
34
|
+
|
35
35
|
### 該当のソースコード
|
36
36
|
●foodテーブル●
|
37
|
+
```
|
37
38
|
class CreateFoods < ActiveRecord::Migration[6.0]
|
38
39
|
def change
|
39
40
|
create_table :foods do |t|
|
@@ -48,9 +49,26 @@
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end
|
52
|
+
html
|
53
|
+
```
|
54
|
+
●foodモデル●
|
55
|
+
```
|
56
|
+
class Food < ApplicationRecord
|
57
|
+
extend ActiveHash::Associations::ActiveRecordExtensions
|
58
|
+
belongs_to :category
|
59
|
+
|
60
|
+
with_options presence: true do
|
61
|
+
validates :food_name
|
62
|
+
validates :purchase_date
|
63
|
+
validates :refrige_id
|
64
|
+
end
|
65
|
+
validates :genre_id, numericality: { other_than: 1 }
|
51
66
|
|
52
|
-
|
67
|
+
belongs_to :refrige, validate: false
|
68
|
+
end
|
69
|
+
```
|
53
70
|
●foodcollectionモデル●
|
71
|
+
```
|
54
72
|
class Form::FoodCollection < Form::Base
|
55
73
|
FORM_COUNT = 2
|
56
74
|
attr_accessor :foods, :refrige_id
|
@@ -75,9 +93,10 @@
|
|
75
93
|
false
|
76
94
|
end
|
77
95
|
end
|
96
|
+
```
|
78
97
|
|
79
|
-
|
80
98
|
●foods コントローラー●
|
99
|
+
```
|
81
100
|
def new
|
82
101
|
@form = Form::FoodCollection.new
|
83
102
|
end
|
@@ -100,7 +119,7 @@
|
|
100
119
|
params.require(:form_food_collection)
|
101
120
|
.permit(foods_attributes: [:food_name, :product_name, :category_id, :purchase_date, :sell_by, :shop],).merge(refrige_id: params[:refrige_id])
|
102
121
|
end
|
103
|
-
|
122
|
+
```
|
104
123
|
|
105
124
|
|
106
125
|
|
3
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
3
|
Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。
|
4
|
-
■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。
|
4
|
+
■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。■■
|
5
|
-
■■現在はパラメーターまではデータが届いているようですが、保存されません。
|
5
|
+
■■現在はパラメーターまではデータが届いているようですが、保存されません。■■
|
6
6
|
|
7
7
|
### 発生している問題・エラーメッセージ
|
8
8
|
●food_collection_paramsの中身
|
2
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。
|
3
|
+
Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。
|
4
|
+
■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。
|
4
5
|
■■現在はパラメーターまではデータが届いているようですが、保存されません。
|
5
6
|
|
6
7
|
### 発生している問題・エラーメッセージ
|
@@ -107,7 +108,9 @@
|
|
107
108
|
|
108
109
|
### 試したこと
|
109
110
|
|
111
|
+
@formにfood_idとrefrige_idがnilになっている事。
|
112
|
+
日付の値が、一番目のみ値が入り。それ以外はnilになっている事をどう解決すれば良いののか検討中です。
|
110
|
-
|
113
|
+
attr_accessor :foods, :refrige_id への記述。ストロングパラメーターにも.merge(refrige_id: params[:refrige_id])の記述をしましたが変わりません。
|
111
114
|
|
112
115
|
### 補足情報(FW/ツールのバージョンなど)
|
113
116
|
|
1
記述修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,7 +54,6 @@
|
|
54
54
|
FORM_COUNT = 2
|
55
55
|
attr_accessor :foods, :refrige_id
|
56
56
|
|
57
|
-
# 初期化メソッド
|
58
57
|
def initialize(attributes = {})
|
59
58
|
super attributes
|
60
59
|
self.foods = FORM_COUNT.times.map { Food.new } unless foods.present?
|
@@ -67,9 +66,8 @@
|
|
67
66
|
def save
|
68
67
|
|
69
68
|
Food.transaction do
|
70
|
-
# 1つでも処理が欠けるとActiveRecordの処理は全てもとの状態に戻りロールバック
|
71
69
|
foods.map do |food|
|
72
|
-
food.save if food.food_name
|
70
|
+
food.save if food.food_name
|
73
71
|
end
|
74
72
|
|
75
73
|
rescue => e
|