我有两个模型-用户和帖子。用户has_many :posts
和发布belongs_to :user
。我想在删除用户后自动删除用户的帖子。我怎样才能做到这一点?我是红宝石的新手。.
class User < ApplicationRecord
has_many :posts
end
class Post < ApplicationRecord
belongs_to :user
end
class UsersController < ApplicationController
def destroy
@user = User.find_by(id:params[:id])
@user.posts
@user.destroy
end
end
我已经尝试了上面的代码,但是仍然只删除了用户,而不删除了他的帖子。预先感谢!
答案 0 :(得分:6)
您需要dependent
的{{1}}选项:
has_many
使用此功能,您仅删除所需的用户,他的帖子会自动销毁
class User < ApplicationRecord
has_many :posts, dependent: :destroy
end
请在guides
中详细了解