2012-10-04 45 views
6

我得到了設計可邀請的安裝和工作。嘗試弄清楚如何在用戶發送邀請後重定向用戶。現在它將我重定向到根。我以爲你可以在下面的方法中設置你的自定義路徑,但它不起作用。如果有人知道邀請發送後自定義路徑的位置,請提前致謝。Rails設計發送邀請函後的Invitable重定向

def after_invite_path_for(resource) 
    new_profile_path 
    end 

回答

11

我偶然發現了你的問題,因爲我遇到了同樣的問題。據我可以告訴你想要重寫after_invite_path_for的方法是重寫Devise :: InvitationsController。

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

的routes.rb

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

如果色器件invitable的工作就像制定適當的,你可以忽略它的後邀請/接受應用控制器的路徑這將是很好。我修改了devise_invitable以這種方式工作並提交了一個pull請求。我不確定它是否會被接受,但你可以看看這裏: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 
+1

我使用devise_invitable與上面的補丁,但它似乎仍然不能在ApplicationController中使用覆蓋。重寫'Users :: InvitationsController'中的'after_invite_path_for'可以工作,但資源不正確。我請求作者重新解決這個問題。 https://github.com/scambra/devise_invitable/pull/240#issuecomment-11915891 –