我正在使用设计,并希望在基于条件语句更新用户后指定不同的重定向.我确实遵循了这个https://github.com/plataformatec/devise/wiki/How-To:-Customize-the-redirect-after-a-user-edits-their-profile,它没有调用我的自定义after_update_path_for方法.
routes.rb
devise_for :users, :skip => [:registrations], :controllers => { :registrations => :registrations } as :user do get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration' put 'users/:id' => 'devise/registrations#update', :as => 'user_registration' end
我有跳过注册的原因是因为我不希望有新的并为用户创建路由.我不确定问题是否与路线或其他问题有关.
这里是 registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController protected def after_update_path_for(resource) binding.pry if current_user.position == "owner" && current_user.sign_in_count == 1 hub_landing_path end end end
任何帮助是极大的赞赏.这真的让我感到难过,所以如果有人有任何想法,我很乐意尝试一下.
你需要改变
put 'users/:id' => 'devise/registrations#update', :as => 'user_registration'
使用您的自定义RegistrationsController
控制器.所以它将是:
put 'users/:id' => 'registrations#update', :as => 'user_registration'