2016-05-25 14 views
0

Meine Controller-Methode Eingabe ist wie:Kontrolle nicht format.html Block

def forcefully_logout 
    process_license_pool_obj = Vendor::ProcessLicensePool.new(@user.vendor) 
    @user.authentication_token = '' 
    if @user.save 
    if process_license_pool_obj.update_license_pool?(false, @user.id.to_s, @user.vendor_id.to_s) 
     respond_to do |format| 
     format.html do 
      redirect_to license_management_vendor_url(@user.vendor_id), notice: 'User was successfully logged-out and license has been released.' 
     end and return 
     end 
    end 
    end 
    respond_to do |format| 
    format.html { redirect_to license_management_vendor_url(@user.vendor_id), warn: 'Unable to forcefully logout user, contact admin.' } 
    end 
end 

und die Route für diese Methode ist als: -

resources :users, except: [:create] do 
    member { delete 'forcefully_logout', to: 'users#forcefully_logout' } 
end 

Obwohl das Verfahren richtig funktioniert, aber es gibt Fehler für "fehlende Vorlage" und die Kontrolle tritt nicht in den Block "format.html" bedeutet, anstatt die Methode umzuleiten versucht, Vorlage zu rendern. Im Server-Protokoll ist die Nachricht für diese Anfrage etwas wie "gestartet Löschen und Verarbeiten durch diese Methode als HTML" (da die Anfrage auch vom HTML-Typ ist), aber redirect_to wird nicht getroffen. Was ist der mögliche Grund für dieses Problem ist dieses Schienenproblem oder ich vermisse etwas Konzept betreffend Anfrageobjekt. Die Anfrage hat den Typ "Löschen". Vielen Dank.

Antwort

0

Tatsächlich ist die „und zurück“ Anweisung nach „format.html“ Block der Strömung verursacht wurde nicht ‚format.html‘ Block, der Arbeitscode einzugeben ist als:

def forcefully_logout 
    process_license_pool_obj = Vendor::ProcessLicensePool.new(@user.vendor) 
    @user.authentication_token = '' 
    if @user.save 
    if process_license_pool_obj.update_license_pool?(false, @user.id.to_s, @user.vendor_id.to_s) 
     respond_to do |format| 
     format.html do 
      redirect_to license_management_vendor_url(@user.vendor_id), notice: 'User was successfully logged-out and license has been released.' and return 
     end 
     end 
    end 
    end 
    respond_to do |format| 
    format.html { redirect_to license_management_vendor_url(@user.vendor_id), warn: 'Unable to forcefully logout user, contact admin.' } 
    end 
end