如何更改默认设计“资源”命名?

问题描述 投票:0回答:1

默认情况下Devise是指在控制器和视图中具有变量

resource
resource_name
resource_class 
等的用户。

是否可以安全地更改此默认值以使 Devise 引用具有自定义名称的用户,例如

user
,
user_name
,
user_class
, 等等?如果是这样,怎么做?

ruby-on-rails devise rename default
1个回答
0
投票

Devise中有这样的文件

https://github.com/heartcombo/devise/blob/main/app/controllers/devise_controller.rb

您可以使用初始化程序对其进行猴子修补(在

config/initializers
中创建新文件或添加到
config/initializers/devise.rb

class DeviseController < Devise.parent_controller.constantize
  %w[resource resource_name signed_in_resource resource_class resource_params].each do |method_name|
    new_method_name = method_name.sub(/resource/, 'user')

    alias_method new_method_name, method_name

    helper_method(new_method_name) if respond_to?(:helper_method)
  end
end

之后你可以使用新的别名

© www.soinside.com 2019 - 2024. All rights reserved.