3

工夫を凝らしてメールを確認することはできません。

route.rb

  devise_for :users, :controllers => { :sessions => "users/sessions" ,:omniauth_callbacks => "users/omniauth_callbacks" } do
    post   "users/confirmation",          :to => "devise/confirmations#create"
    get    "users/confirmation/new",      :to => "devise/confirmations#new", :as => "new_confirmation"
    get    "users/confirmation",          :to => "devise/confirmations#show"
  end
  resources :pensioners #, :only => [:index, :destroy, :new]
  resources :users #, :only => [:index, :destroy, :new]

herokurunrakeルート

                                                             ....
   user_confirmation POST   /users/confirmation(.:format) devise/confirmations#create

   new_user_confirmation GET    /users/confirmation/new(.:format) devise/confirmations#new

                  GET    /users/confirmation(.:format)          devise/confirmations#show

                                                              ....

でもリクエストすると

    GET /users/confirmation?confirmation_token=BeELxDDq9sxpseLh8Rdn 

404エラーが発生します

  The page you were looking for doesn't exist.
  You may have mistyped the address or the page may have moved.

どこが間違っているの?

モデル

 class User < ActiveRecord::Base
      devise .... , :confirmable

移行

class AddConfirmableToUsers < ActiveRecord::Migration
  def up
   add_column :users, :confirmation_token, :string
   add_column :users, :confirmed_at, :datetime
   add_column :users, :confirmation_sent_at, :datetime
   add_index :users, :confirmation_token, :unique => true
   User.update_all(:confirmed_at => Time.now)
  end
  ....
4

2 に答える 2

5

ちょっと遅いですが、とにかく。GET の代わりに PATCH を使用してみてください。次のroutes.rbようなルートが必要です

patch '/user/confirmation' => 'user/confirmations#update', :via => :patch, :as => :update_user_confirmation
于 2014-04-18T10:40:45.297 に答える