无法通过设计确认电子邮件。
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
....
答案 0 :(得分:5)
有点迟了,但无论如何。尝试使用PATCH而不是GET。您的routes.rb
应该有类似
patch '/user/confirmation' => 'user/confirmations#update', :via => :patch, :as => :update_user_confirmation
答案 1 :(得分:0)
在Rails 4.2.10中,使用Devise 4.4.3,这对我有用:
devise_for :users, controllers: { registrations: 'registrations',
sessions: 'sessions',
confirmations: 'confirmations' }
devise_scope :user do
# custom routes...
get 'confirmation/sent' => 'confirmations#sent'
patch 'users/confirmation' => 'confirmations#create'
end