注意:和往常一样,我在澄清问题的过程中解决了我的问题!解决方案即将结束。
Rails不会将设计邀请网址请求发送到正确的位置。
当我去:
http://localhost:3000/users/invitation/accept?invitation_token=SOME_TOKEN
浏览器只是重定向到root。
routes.rb正在向我的自定义设备控制器发送请求,例如:
devise_for :users, :controllers => { passwords: 'passwords', sessions: "sessions", invitations: 'users/invitations'}
devise.rb已启用范围视图:
config.scoped_views = true
rake路线给了我:
accept_user_invitation GET /users/invitation/accept(.:format) users/invitations#edit
和users / invitations_controller.rb就像:
class Users::InvitationsController < Devise::InvitationsController
def edit
# Try to catch rails if it resolves to this method like i want it to!
# It fails to get here, though.
byebug # elsewhere in my code, byebug successfully acts as breakpoint
super
end
end
那为什么要重定向到root?
我已经让它解决了我的自定义编辑方法,但只能从devise_for
删除邀请控制器并重命名(如#34;接受&#34;)并明确地将其设置为路线:
devise_scope :user do
scope'/users' do
get '/invitation/accept' => 'users/invitations#accept', as: 'custom_accept_user_invitation'
end
end
如果这是一个缓存问题,我已删除了我的Chrome DNS缓存,重新启动了rails服务器和redis-server,并运行了rake tmp:cache:clear。
更新:解决方案
问题是我已经使用其他帐户登录到我的网站,所以当我尝试接受devise_invitable邀请时,设计会将我重定向到root!
我退出并再次尝试了该网址,并且工作正常!
答案 0 :(得分:1)
问题是我已经使用其他帐户登录到我的网站,所以当我尝试接受devise_invitable邀请时,设计会将我重定向到root!
我退出并再次尝试了该网址,并且工作正常!