質問編集履歴

2

内容の修正

2017/03/07 10:11

投稿

ken0625
ken0625

スコア40

test CHANGED
File without changes
test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  追記
82
82
 
83
- Userモデルは
83
+ Userモデルははusernameカラムを持ち
84
84
 
85
85
  ```ここに言語を入力
86
86
 
@@ -92,7 +92,7 @@
92
92
 
93
93
 
94
94
 
95
- user_product_categoryはusernameカラムを持ち
95
+ user_product_categoryは
96
96
 
97
97
  ```ここに言語を入力
98
98
 

1

詳細説明を追記

2017/03/07 10:11

投稿

ken0625
ken0625

スコア40

test CHANGED
File without changes
test CHANGED
@@ -73,3 +73,165 @@
73
73
 
74
74
 
75
75
  何解決策はないか教えて下さい。お願いします。
76
+
77
+
78
+
79
+
80
+
81
+ 追記
82
+
83
+ Userモデルは
84
+
85
+ ```ここに言語を入力
86
+
87
+ has_many :user_product_category
88
+
89
+ has_many :product_category through: :user_product_category
90
+
91
+ ```
92
+
93
+
94
+
95
+ user_product_categoryはusernameカラムを持ち
96
+
97
+ ```ここに言語を入力
98
+
99
+ belongs_to :users
100
+
101
+ belongs_to :product_category
102
+
103
+ ```
104
+
105
+ でカラムとしては
106
+
107
+ ```ここに言語を入力
108
+
109
+ user_id, :integer
110
+
111
+ product_category_id, :integer
112
+
113
+ price, :integer
114
+
115
+ ```
116
+
117
+
118
+
119
+ product_categoryはnameカラムをもっていて
120
+
121
+ ```ここに言語を入力
122
+
123
+ has_many :user_product_category
124
+
125
+ has_many :users through: :user_product_category
126
+
127
+ ```
128
+
129
+ を持っている状態です
130
+
131
+
132
+
133
+ createメソッドについてやりたいことは
134
+
135
+
136
+
137
+ 1・まず、ProductCategories.allで手に入る全製品カテゴリ名をチェックボックスで表示
138
+
139
+
140
+
141
+ 2・checkboxの横に数字を入れるテキストフィールドがありpriceを入力する
142
+
143
+
144
+
145
+ 3・更新を押すとuser_product_categoryコントローラにparamsが飛んで
146
+
147
+ checkboxがついてる製品カテゴリの中間テーブルを生成。
148
+
149
+ checkboxがあったが外れたものについては削除。
150
+
151
+ さらにpriceフィールドのバリデーションをする
152
+
153
+
154
+
155
+ 例えば
156
+
157
+ user_id=1のユーザーAがおり
158
+
159
+
160
+
161
+ 製品カテゴリ1(id=1)
162
+
163
+ 製品カテゴリ2(id=2)
164
+
165
+ 製品カテゴリ3(id=3)
166
+
167
+ があるとして
168
+
169
+
170
+
171
+ ユーザーAは最初に製品カテゴリ1にチェックし、1000円と入力する
172
+
173
+
174
+
175
+ user_product_categoryテーブルで
176
+
177
+
178
+
179
+ id=1
180
+
181
+ user_id=1
182
+
183
+ product_categories_id=1
184
+
185
+ price=1000
186
+
187
+
188
+
189
+ というレコードが生成される
190
+
191
+
192
+
193
+ 次にユーザーAは製品カテゴリ1のチェックを外し、製品カテゴリ2と製品カテゴリ3のチェックを付け、両方共にprice=1200を入力し更新ボタンを押す
194
+
195
+
196
+
197
+ user_product_categoryテーブルで
198
+
199
+
200
+
201
+ id=1のレコードはチェックが外れたので削除
202
+
203
+
204
+
205
+ id=2
206
+
207
+ user_id=1
208
+
209
+ product_categories_id=2
210
+
211
+ price=1200
212
+
213
+
214
+
215
+ id=3
216
+
217
+ user_id=1
218
+
219
+ product_categories_id=3
220
+
221
+ price=1200
222
+
223
+
224
+
225
+ というレコードが生成される
226
+
227
+
228
+
229
+
230
+
231
+ こんな感じにしたいです。
232
+
233
+
234
+
235
+ ただこの時strong parameterはどのように書くのかとかどうやって一括でpriceフィールドのバリデーションするかとか全く思いつきませんでした。
236
+
237
+ いい方法があったら教えて頂きたいです。