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] 

Heroku的运行路线耙

               .... 
    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 
    .... 

回答

5

很晚了,但无论如何。尝试使用PATCH而不是GET。您的routes.rb应该有一条路线,如

patch '/user/confirmation' => 'user/confirmations#update', :via => :patch, :as => :update_user_confirmation 
+0

嗨,你能告诉我这是怎么做的?谢谢 –

+1

@issy很抱歉迟到的回应。这是,如果你仍然需要它:'补丁“/用户/确认” =>“用户名/确认#更新”,:通过=>:补丁:为=>:update_user_confirmation' –

+0

谢谢!真的很感谢这一点。 –