我有一个使用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的方式?
答案 0 :(得分:1)
Devise动态构建这些方法,并在加载时将它们添加到ActiveSupport
。请参阅此处的第132行:https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb,因此覆盖默认功能可能会非常棘手并且可能会变得很难看。
由于Devise似乎不提供任何易于配置的覆盖,因此您可能最好根据建议在ApplicationController
中编写别名方法。