Rails如何发送POST然后单击一个用户按钮删除

时间:2016-08-15 01:12:19

标签: ruby-on-rails devise

当用户尝试在我的网站上删除他们的帐户时,我希望他们填写表单以说明他们离开的原因。当他们点击提交按钮时,我基本上需要执行两个操作。需要提交表单的内容,并且需要删除用户帐户。我怎样才能做到这一点?我正在使用Devise。

设计摧毁行动如下所示:

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

我提交表单的行为如下(表单实际发送电子邮件)

  def create
    @delete_form = DeleteForm.new(params[:delete_form])
    @delete_form.request = request
    @delete_form.deliver
  end

根据我的理解发送表单的参数,我需要它作为POST请求但是要删除用户帐户我需要它作为DELETE请求。我如何设计这个以便表单被提交(邮件发送)然后帐户被删除?

1 个答案:

答案 0 :(得分:0)

首先,没有重定向到DELETE ACTION

所以,应该如何: -

  1. 创建一个类似于创建的新动作以添加新记录
  2. 检查是否已创建新记录,然后删除
  3. `

    if @user_post.save
     User.find(current_user).delete
      redirect_to :sign_in,notice: "Thank you for your reply."
    end
    

    您也可以尝试sign_out_and_redirect设计助手。