2016-08-15 30 views
0

當用戶嘗試刪除我的網站上的帳戶時,我希望他們填寫表單以說明他們離開的原因。當他們點擊提交按鈕時,我基本上需要執行兩個操作。表單的內容需要提交,用戶帳戶需要刪除。我怎樣才能做到這一點?我正在使用Devise。Rails如何發送POST然後用一個用戶按鈕刪除點擊

的色器件破壞動作看起來是這樣的:

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 

據我所知送我需要它的形式params是一個POST請求,但刪除用戶帳戶我需要它是一個DELETE請求。我如何設計這個表單以便提交(郵件發送),然後帳戶被刪除?

+0

以上所有僅僅是ruby代碼...您可以創建一個控制器動作,執行代碼行爲代碼...然後立即執行刪除動作代碼:) –

+0

@TarynEast yes但是當我創建如果需要使用,請使用以下哪種方法:提交參數,以及:刪除以刪除帳戶 – user4584963

+0

我會選擇「刪除」作爲方法。 ''如果我需要使用:post提交參數,並且:delete刪除賬戶''你不需要這兩種方法......只需將其全部發布到「delete」方法中,然後修改delete方法做兩者的代碼。 –

回答

0

首先,沒有重定向到刪除操作

所以,這是應該如何去: -

  1. 創建類似的新的行動創造添加一個新的記錄
  2. 檢查是否創建新記錄,然後刪除

`

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

您也可以試試devise helpers的sign_out_and_redirect

+0

設計銷燬行爲中的所有額外代碼(sign_out_all_scopes等)如何?這不需要嗎? – user4584963

+0

是的..你會需要它,如果你想通過直接呼叫刪除用戶..如使用link_to刪除操作......但沒有重定向刪除操作 – Milind

+0

我很困惑你的解釋。只有當我想使用link_to helper刪除時,我需要確保包含所有設計代碼? – user4584963

相關問題