设计自定义after_update_path_for未被调用(Rails 4)

 lkiouy_107 发布于 2023-02-12 19:53

我正在使用设计,并希望在基于条件语句更新用户后指定不同的重定向.我确实遵循了这个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

任何帮助是极大的赞赏.这真的让我感到难过,所以如果有人有任何想法,我很乐意尝试一下.

1 个回答
  • 你需要改变

    put 'users/:id' => 'devise/registrations#update', :as => 'user_registration'
    

    使用您的自定义RegistrationsController控制器.所以它将是:

    put 'users/:id' => 'registrations#update', :as => 'user_registration'
    

    2023-02-12 19:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有