質問編集履歴
2
説明の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -240,8 +240,108 @@
|
|
240
240
|
|
241
241
|
|
242
242
|
|
243
|
+
【モデル】favaritesという中間テーブルとアソシエーションを組んでおります。
|
244
|
+
|
245
|
+
nutrition.rb
|
246
|
+
|
247
|
+
```ここに言語を入力
|
248
|
+
|
249
|
+
class Nutrition < ApplicationRecord
|
250
|
+
|
251
|
+
belongs_to :user
|
252
|
+
|
253
|
+
has_many :favorites, foreign_key: true, dependent: :destroy
|
254
|
+
|
255
|
+
has_many :fav_users, through: :favorites, source: :user
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
with_options presence: true do
|
260
|
+
|
261
|
+
validates :ingredient
|
262
|
+
|
263
|
+
validates :calorie, numericality: { only_integer: true }
|
264
|
+
|
265
|
+
validates :protein, numericality: { only_integer: true }
|
266
|
+
|
267
|
+
validates :lipid, numericality: { only_integer: true }
|
268
|
+
|
269
|
+
validates :carbohydrate, numericality: { only_integer: true }
|
270
|
+
|
271
|
+
validates :potassium, numericality: { only_integer: true }
|
272
|
+
|
273
|
+
validates :calcium, numericality: { only_integer: true }
|
274
|
+
|
275
|
+
validates :iron, numericality: { only_integer: true }
|
276
|
+
|
277
|
+
validates :vitamin_a, numericality: { only_integer: true }
|
278
|
+
|
279
|
+
validates :vitamin_b1, numericality: { only_integer: true }
|
280
|
+
|
281
|
+
validates :vitamin_b2, numericality: { only_integer: true }
|
282
|
+
|
283
|
+
validates :vitamin_c, numericality: { only_integer: true }
|
284
|
+
|
285
|
+
validates :salt_equivalent, numericality: { only_integer: true }
|
286
|
+
|
287
|
+
end
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
def self.search(search)
|
292
|
+
|
293
|
+
if search != ""
|
294
|
+
|
295
|
+
Nutrition.where('ingredient LIKE(?)', "%#{search}%")
|
296
|
+
|
297
|
+
else
|
298
|
+
|
299
|
+
Nutrition.all
|
300
|
+
|
301
|
+
end
|
302
|
+
|
303
|
+
end
|
304
|
+
|
305
|
+
end
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
```
|
310
|
+
|
311
|
+
favorite.rb
|
312
|
+
|
313
|
+
```ここに言語を入力
|
314
|
+
|
315
|
+
class Favorite < ApplicationRecord
|
316
|
+
|
317
|
+
belongs_to :user
|
318
|
+
|
319
|
+
belongs_to :nutrition
|
320
|
+
|
321
|
+
validates_uniqueness_of :nutrition_id, scope: :user_id
|
322
|
+
|
323
|
+
end
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
コード
|
328
|
+
|
329
|
+
```
|
330
|
+
|
331
|
+
|
332
|
+
|
243
333
|
エラー分ではUnknown column 'favorites.true' in 'where clause'とありますが、今回のdestroyアクションではfavoritesに全く触れているつもりはないのですがなぜここで出てきてしまうのでしょうか。
|
244
334
|
|
245
335
|
|
246
336
|
|
337
|
+
アソシエーションにてdependent: :destroyが組んであるので試しに消去してみると以下のエラーが発生します。
|
338
|
+
|
339
|
+
Mysql2::Error: Cannot delete or update a parent row: a foreign key constraint fails (`berries_development`.`favorites`, CONSTRAINT `fk_rails_2201ed1284` FOREIGN KEY (`nutrition_id`) REFERENCES `nutritions` (`id`))
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
何が原因なのかがわかりません・・・
|
346
|
+
|
247
347
|
ご教授いただけますと幸いです。
|
1
脱字があった
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,6 +14,8 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
+
userが登録済みのnutrition(食材)を削除するという簡単な動作です。
|
18
|
+
|
17
19
|
destroyアクションをビューから呼び出している際に発生していると思われます。
|
18
20
|
|
19
21
|
対象のコードは以下になります。
|