在Devise中更改'current_user'帮助器的名称

时间:2017-04-25 17:41:38

标签: ruby-on-rails devise

我有一个使用Devise的Client模型设置,我将这些路由命名为:

  namespace :portal do
    devise_for :clients, controllers: {
        sessions: 'clients/sessions',
        registrations: 'clients/registrations',
        invitations: 'clients/invitations'
    } 
   end

因此,我获得current_client而不是current_portal_client助手。有没有办法可以将它设置为current_client?我应该在ApplicationController中对它进行别名,还是有特定于Devise的方式?

1 个答案:

答案 0 :(得分:1)

Devise动态构建这些方法,并在加载时将它们添加到ActiveSupport。请参阅此处的第132行:https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb,因此覆盖默认功能可能会非常棘手并且可能会变得很难看。

由于Devise似乎不提供任何易于配置的覆盖,因此您可能最好根据建议在ApplicationController中编写别名方法。