Tôi tình cờ gặp câu hỏi của bạn vì tôi gặp sự cố tương tự. Theo như tôi có thể nói cách dự định để bạn ghi đè after_invite_path_for là ghi đè lên 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" }
Nó sẽ được tốt đẹp nếu devise invitable làm việc như đưa ra phù hợp và bạn có thể ghi đè lên nó sau khi mời/chấp nhận đường dẫn trong bộ điều khiển ứng dụng. Tôi sửa đổi devise_invitable để làm việc theo cách đó và gửi một yêu cầu kéo. Tôi không chắc liệu nó có được chấp nhận hay không, nhưng bạn có thể xem ở đây: https://github.com/scambra/devise_invitable/pull/240.
Nếu tính năng đó được chấp nhận, bạn có thể vá phiên bản hiện tại của bạn invitable tôn trọng định nghĩa về sau khi mời/chấp nhận đường dẫn trong bộ điều khiển ứng dụng bằng cách đặt này trong một initializer:
#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
Tôi đang sử dụng devise_invitable với vá ở trên, nhưng nó vẫn không hoạt động với một ghi đè trong 'ApplicationController'. Việc ghi đè 'after_invite_path_for' trong tác phẩm' Users :: InvitationsController', tuy nhiên tài nguyên không chính xác. Tôi đã yêu cầu tác giả mở lại vấn đề. https://github.com/scambra/devise_invitable/pull/240#issuecomment-11915891 –