加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 设计自定义after_update_path_for未被调用(Rai

发布时间:2020-12-17 02:39:49 所属栏目:百科 来源:网络整理
导读:我正在使用设计,并希望在基于条件语句更新用户后指定不同的重定向.我确实遵循了这个 https://github.com/plataformatec/devise/wiki/How-To:-Customize-the-redirect-after-a-user-edits-their-profile,并没有调用我的自定义after_update_path_for方法. 的ro
我正在使用设计,并希望在基于条件语句更新用户后指定不同的重定向.我确实遵循了这个 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'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读