Question

Rolling my own email confirmation from scratch. Struggling with how to generate the proper routing for my confirmations_controller.

new user gets sent an email with link back to app to 'verify' address.

My thought is it should be a PUT action because it WILL make changes to the DB. But, clicking on a link in an email won't submit a 'put' action...or will it? I must be missing something, my own ignorance aside.

#config/routes.rb
...
resources :confirmations, only: [:update]

confirmation_url(user.email_token) generates valid url: http://localhost:3000/confirmations/ArELEOejYlqbRXdJPavhrp but when clicking on that link it is received by app as a 'get' request.

How should I be handling this?

Was it helpful?

Solution

What format is your email? If its plain text, it will be a GET. That itself is not a problem for updating the activation page. You could also open a page (with GET) and let them click on a button for final submit (not uncommon).

However, updating through a GET would not bother me for this specific function.

example:

# routes.rb
get 'confirmations/:id/confirm' => 'Confirmations#confirm'

# confirmations.rb
class ConfirmationsController < ApplicationController

  def confirm
    # handle the get data here (switch aa flag for the email account)       
   end
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top