为什么设计不遵守路线?

时间:2016-01-28 05:58:20

标签: ruby-on-rails devise devise-invitable

注意:和往常一样,我在澄清问题的过程中解决了我的问题!解决方案即将结束。

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!

我退出并再次尝试了该网址,并且工作正常!

1 个答案:

答案 0 :(得分:1)

问题是我已经使用其他帐户登录到我的网站,所以当我尝试接受devise_invitable邀请时,设计会将我重定向到root!

我退出并再次尝试了该网址,并且工作正常!