销毁用户(设计)并执行其他任务

时间:2014-02-05 16:25:51

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

我将Devise用于我的用户模型。我希望当用户取消他的帐户时:

Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>

还执行一些其他任务,例如在我的情况下取消用户的Stripe订阅。所以我不确定我做的是否可以,但我在user_controller.rb中创建了这个方法:

  def destroy
    @user = current_user
    customer = Stripe::Customer.retrieve(@user.stripe_customer_token)
    customer.cancel_subscription()
    if @user.destroy
      flash.alert = "Your subscription and account has been cancelled successfully!"
      redirect_to root_path
    end
  end

我认为这种方法甚至没有执行,因为当我取消我的帐户时,flash消息不同。

我哪里错了?这可能吗?因为我觉得我尝试做的事情是错误的。

谢谢。

1 个答案:

答案 0 :(得分:1)

您应该链接到销毁操作而不是registration_path

Unhappy? <%= link_to "Cancel my account", user_path(user), :data => { :confirm => "Are you sure?" }, :method => :delete %>