Member Avatar for harry.suren

Logout functionality does not working properly in "Production Environment".

The logout Function is called in Production Environment by Started GET "/logout" for 127.0.0.1 at 2014-11-11 14:48:52 +0530 instead of Started DELETE "/logout".

Note: I don't use Devise Gem in my application.

routes.rb

 root 'welcome#home' get 'signup' => 'users#new' get 'login' => 'sessions#new' post 'login' => 'sessions#create' delete 'logout' => 'sessions#destroy' resources :users resources :questions #resources :choices get "quiz/index" post "quiz/start" get "quiz/question" post "quiz/question" post "quiz/answer" get "quiz/end" post "choices/create" post "choices/destroy" resources :sessions, only: [:new, :create, :destroy] 

Logout Code:

<%= link_to "Log out", logout_path , method: "delete" 

Note: This code works fine in Development Environment. The problem is with Production Environment itself.

Member Avatar for harry.suren

I have figured the answer for the above Question.

in the "Logout Code" Instead of <%= link_to "Log out", logout_path , method: "delete" use <%= button_to "Log out", logout_path , method: "delete".

This one worked for me.

Member Avatar for Taywin

To clarify, "button_to" creates a "form" tag and submit its value (inside its form) to your server (POST). "link_to" is simply a redirect which is similar to an anchor tag in HTML (GET). If you ever deal with submitting a value to your server, use "button_to" and not "link_to" method.

commented: Thanks For the Explaination+0
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.