默认情况下Devise是指在控制器和视图中具有变量
resource
、resource_name
、resource_class
等的用户。
是否可以安全地更改此默认值以使 Devise 引用具有自定义名称的用户,例如
user
, user_name
, user_class
, 等等?如果是这样,怎么做?
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
之后你可以使用新的别名