如何在Devise中更改全局变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Devise中更改全局变量相关的知识,希望对你有一定的参考价值。
我想改变它(在devise.rb中定义):
@@reset_password_keys = [:email]
至:
@@reset_password_keys = [:email, :role]
最终使用(作为required_attributes
)在authenticatable.rb
中定义的以下方法中查找用户。
我想使用它来强制从重置密码表单发送email
和role
属性。
用法:
def find_or_initialize_with_errors(required_attributes, attributes, error=:invalid) #:nodoc:
attributes = if attributes.respond_to? :permit!
attributes.slice(*required_attributes).permit!.to_h.with_indifferent_access
else
attributes.with_indifferent_access.slice(*required_attributes)
end
attributes.delete_if { |key, value| value.blank? }
if attributes.size == required_attributes.size
record = find_first_by_auth_conditions(attributes)
end
unless record
record = new
required_attributes.each do |key|
value = attributes[key]
record.send("#{key}=", value)
record.errors.add(key, value.present? ? error : :blank)
end
end
record
end
答案
你应该在你的config/initializers/devise.rb
文件中更改它:
config.reset_password_keys = [:email, :role]
以上是关于如何在Devise中更改全局变量的主要内容,如果未能解决你的问题,请参考以下文章
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段