【发布时间】:2018-03-06 02:09:21
【问题描述】:
我的项目中有 3 个模型。用户,膳食和食物。 用户有很多餐。一顿饭可以有很多食物,一个食物可以是很多餐的一部分。 用户和餐食模型属于 has_many 关联,而餐食和食物模型属于 has_many :through 关联。餐食和食物模型的连接模型称为 MealFood。
删除用户时,我已经删除了属于该用户的所有餐点。但是我不能让它也删除属于用户的所有膳食关联。
我需要删除meal_foods 表中meal_id 属于被删除用户的每条记录。
用户模型
class User < ApplicationRecord
has_many :meals, :dependent => :delete_all
end
膳食模型
class Meal < ApplicationRecord
belongs_to :user, optional: true
has_many :meal_foods, :dependent => :delete_all
has_many :foods, through: :meal_foods
end
食物模型
class Food < ApplicationRecord
has_many :meal_foods
has_many :meals, through: :meal_foods
end
MealFood 模型
class MealFood < ApplicationRecord
belongs_to :meal
belongs_to :food
end
提前致谢!
【问题讨论】:
标签: ruby-on-rails database model-view-controller model associations