删除用户及其帖子

时间:2019-01-13 05:25:46

标签: ruby-on-rails ruby ruby-on-rails-5

我有两个模型-用户和帖子。用户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

我已经尝试了上面的代码,但是仍然只删除了用户,而不删除了他的帖子。预先感谢!

1 个答案:

答案 0 :(得分:6)

您需要dependent的{​​{1}}选项:

has_many

使用此功能,您仅删除所需的用户,他的帖子会自动销毁

class User < ApplicationRecord
  has_many :posts, dependent: :destroy
end

请在guides

中详细了解