10

我得到了邀请安装和工作的设计。试图弄清楚在用户发出邀请后如何重定向用户。现在它正在将我重定向到根目录。我以为您可以在下面的方法中设置自定义路径,但它不起作用。如果有人知道在发送邀请后在哪里自定义路径,请提前致谢。

 def after_invite_path_for(resource)
    new_profile_path
  end
4

2 回答 2

22

我偶然发现了你的问题,因为我遇到了同样的问题。据我所知,您覆盖 after_invite_path_for 的预期方法是覆盖 Devise::InvitationsController。

class Users::InvitationsController < Devise::InvitationsController
  def after_invite_path_for(resource)
    new_profile_path
  end
end

路线.rb

devise_for :users, :controllers => { :invitations => "users/invitations" }

如果 devise invitable 像 devise proper 一样工作,并且您可以在应用程序控制器中覆盖其后邀请/接受路径,那就太好了。我修改了 devise_invitable 以这种方式工作并提交了一个拉取请求。我不确定它是否会被接受,但您可以在这里查看:https ://github.com/scambra/devise_invitable/pull/240 。

如果该功能被接受,您可以通过将其放入初始化程序中来修补您当前版本的 invitable 以尊重应用程序控制器中的邀请/接受后路径的定义:

#make invitable's path functions overridable in application controller
[:after_invite_path_for, :after_accept_path_for].each do |method|
  Devise::InvitationsController.send(:remove_method, method) if ApplicationController.method_defined? method
end
于 2012-10-09T21:33:21.207 回答
2

不确定这是一件好事……还是更糟糕的事情,但是您可以提出:

  def after_invite_path_for(resource)
    new_profile_path
  end

在您的应用程序控制器中......似乎工作正常!

于 2018-04-23T13:25:27.723 回答