teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

8

誤字

2020/12/10 01:52

投稿

kao.
kao.

スコア2

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

記述修正

2020/12/10 01:52

投稿

kao.
kao.

スコア2

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

記述修正

2020/12/09 09:10

投稿

kao.
kao.

スコア2

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

誤字

2020/12/09 09:08

投稿

kao.
kao.

スコア2

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

書式の改善

2020/12/09 05:47

投稿

kao.
kao.

スコア2

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

誤字

2020/12/09 03:54

投稿

kao.
kao.

スコア2

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

誤字

2020/12/09 03:36

投稿

kao.
kao.

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- Railsで冷蔵庫管理システムを作ろうと挑戦しています。個人冷蔵庫(refrige)に食材(food)を複数入力し複数のレコードを、一括で保存したいと考えています。■■最終的には、フォームの全部に入力している場合にのみ保存ではなく。食材名(:food_name)の欄への記述があるもののみ保存したいです。
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
- @formにfood_idとrefrige_idがnilになっている事。日付の値が、一番目のみ値が入り。それ以外はnilになっている事をどう解決すれば良いののか検討中です。attr_accessor :foods, :refrige_id への記述。ストロングパラメーターにも.merge(refrige_id: params[:refrige_id])の記述をしましたが変わりません。
113
+ attr_accessor :foods, :refrige_id への記述。ストロングパラメーターにも.merge(refrige_id: params[:refrige_id])の記述をしましたが変わりません。
111
114
 
112
115
  ### 補足情報(FW/ツールのバージョンなど)
113
116
 

1

記述修正

2020/12/09 03:31

投稿

kao.
kao.

スコア2

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 # ここでfood_nameに記述があるものみが保存される
70
+ food.save if food.food_name
73
71
  end
74
72
 
75
73
  rescue => e