Public_activity - 在帐户取消后销毁用户的活动

时间:2014-01-17 14:25:27

标签: ruby-on-rails devise controller ruby-on-rails-4

我正在努力实现这一点,当用户删除他的帐户时,他的所有活动也会被删除。

我正在使用Rails 4 - 设计 - 公共活动

我的注册控制器:

class RegistrationsController < Devise::RegistrationsController

  # DELETE /resource
  def destroy
    resource.destroy
    Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name)
    set_flash_message :notice, :destroyed if is_flashing_format?
    yield resource if block_given?
    respond_with_navigational(resource){ redirect_to after_sign_out_path_for(resource_name) }
  end

end

在用户删除我使用的评论后销毁评论记录:

@activity = PublicActivity::Activity.find_by_trackable_id(params[:id])
@activity.destroy

我正在搜索类似的内容,但仅在帐户取消后销毁所有活动。

任何一个好的解决方案?

1 个答案:

答案 0 :(得分:5)

User.rb 中的

添加回调:

 before_destroy :delete_activities

 def delete_activities
    acts = PublicActivity::Activity.where(owner_id: self.id, owner_type: "User")
    acts.delete_all
  end