在设计中覆盖 self.friendly_token
Override self.friendly_token in devise
在devise/lib/devise.rb
中有一个方法叫做self.friendly_token
:
def self.friendly_token(length = 20)
# To calculate real characters, we must perform this operation.
# See SecureRandom.urlsafe_base64
rlength = (length * 3) / 4
SecureRandom.urlsafe_base64(rlength).tr('lIO0', 'sxyz')
end
我想将 .tr('lIO0', 'sxyz')
更改为 .tr('lIO0-', 'sxyz')
并在我的应用程序中覆盖它,然后问题就开始了。我不知道怎么做。有人可以帮我吗?我正在使用 Rails 4.2.
我会将此代码放入 config/initializers/devise.rb
文件中:
module Devise
def self.friendly_token(length = 20)
# your implementation
end
end
将此代码放入 config/initializers/
文件夹中的哪个文件并不重要。也许更好的解决方案是添加一个像这样命名的新文件 config/initializers/devise_overrides.rb
并将代码放在那里。
在devise/lib/devise.rb
中有一个方法叫做self.friendly_token
:
def self.friendly_token(length = 20)
# To calculate real characters, we must perform this operation.
# See SecureRandom.urlsafe_base64
rlength = (length * 3) / 4
SecureRandom.urlsafe_base64(rlength).tr('lIO0', 'sxyz')
end
我想将 .tr('lIO0', 'sxyz')
更改为 .tr('lIO0-', 'sxyz')
并在我的应用程序中覆盖它,然后问题就开始了。我不知道怎么做。有人可以帮我吗?我正在使用 Rails 4.2.
我会将此代码放入 config/initializers/devise.rb
文件中:
module Devise
def self.friendly_token(length = 20)
# your implementation
end
end
将此代码放入 config/initializers/
文件夹中的哪个文件并不重要。也许更好的解决方案是添加一个像这样命名的新文件 config/initializers/devise_overrides.rb
并将代码放在那里。