为什么设计会生成这种格式的确认 URL?
why devise is generating this format of confirmation URL?
设计继续生成 confirmation URL
这种格式
http://something.com/users/confirmation/divyanshu-rawat?confirmation_token=CV3zV1wAWsb3RokHHEKN
我不知道为什么它没有生成这样的东西。
http://something.com/users/confirmation?confirmation_token=CV3zV1wAWsb3RokHHEKN
这就是我的 confirmation_instructions.html.haml
的样子。
%p Welcome #{@resource.first_name}!
%p You can confirm your account email through the link below:
%p= link_to 'Confirm my account', user_confirmation_url(@resource, :confirmation_token => @resource.confirmation_token)
在Devisegem中,创建确认路径如下,
# # Confirmation routes for Confirmable, if User model has :confirmable configured
# new_user_confirmation GET /users/confirmation/new(.:format) {controller:"devise/confirmations", action:"new"}
# user_confirmation GET /users/confirmation(.:format) {controller:"devise/confirmations", action:"show"}
# POST /users/confirmation(.:format) {controller:"devise/confirmations", action:"create"}
所以如果你想创建 url 喜欢,
http://something.com/users/confirmation?confirmation_token=CV3zV1wAWsb3RokHHEKN
使用
user_confirmation_url(confirmation_token: @resource.confirmation_token)`
而不是
user_confirmation_url(@resource, confirmation_token: @resource.confirmation_token)`
同时勾选 routes.rb
如果你想通过user_name或name确认@resource
的db属性url(正如您通过在 url 中传递 'divyanshu-rawat' 所要求的那样),您可以创建自己的自定义路由,它将指向与下面相同的控制器和操作,
# config/routes.rb
devise_for :users
as :user do
get '/users/confirmation/:name' => "devise/confirmations#show", as: 'user_confirm'
end
如果在你的情况下,@resource.user_name = 'divyanshu-rawat',更新 confirmation_instructions.html.haml
如下,
%p Welcome #{@resource.first_name}!
%p You can confirm your account email through the link below:
%p= link_to 'Confirm my account', user_confirm_url(name: @resource.user_name, confirmation_token: @resource.confirmation_token)
这会产生 url 之类的,
http://something.com/users/confirmation/divyanshu-rawat?confirmation_token=CV3zV1wAWsb3RokHHEKN
设计继续生成 confirmation URL
http://something.com/users/confirmation/divyanshu-rawat?confirmation_token=CV3zV1wAWsb3RokHHEKN
我不知道为什么它没有生成这样的东西。
http://something.com/users/confirmation?confirmation_token=CV3zV1wAWsb3RokHHEKN
这就是我的 confirmation_instructions.html.haml
的样子。
%p Welcome #{@resource.first_name}!
%p You can confirm your account email through the link below:
%p= link_to 'Confirm my account', user_confirmation_url(@resource, :confirmation_token => @resource.confirmation_token)
在Devisegem中,创建确认路径如下,
# # Confirmation routes for Confirmable, if User model has :confirmable configured
# new_user_confirmation GET /users/confirmation/new(.:format) {controller:"devise/confirmations", action:"new"}
# user_confirmation GET /users/confirmation(.:format) {controller:"devise/confirmations", action:"show"}
# POST /users/confirmation(.:format) {controller:"devise/confirmations", action:"create"}
所以如果你想创建 url 喜欢,
http://something.com/users/confirmation?confirmation_token=CV3zV1wAWsb3RokHHEKN
使用
user_confirmation_url(confirmation_token: @resource.confirmation_token)`
而不是
user_confirmation_url(@resource, confirmation_token: @resource.confirmation_token)`
同时勾选 routes.rb
如果你想通过user_name或name确认@resource
的db属性url(正如您通过在 url 中传递 'divyanshu-rawat' 所要求的那样),您可以创建自己的自定义路由,它将指向与下面相同的控制器和操作,
# config/routes.rb
devise_for :users
as :user do
get '/users/confirmation/:name' => "devise/confirmations#show", as: 'user_confirm'
end
如果在你的情况下,@resource.user_name = 'divyanshu-rawat',更新 confirmation_instructions.html.haml
如下,
%p Welcome #{@resource.first_name}!
%p You can confirm your account email through the link below:
%p= link_to 'Confirm my account', user_confirm_url(name: @resource.user_name, confirmation_token: @resource.confirmation_token)
这会产生 url 之类的,
http://something.com/users/confirmation/divyanshu-rawat?confirmation_token=CV3zV1wAWsb3RokHHEKN