gpt4 book ai didi

ruby-on-rails - rails : why is calling to_a on a string not valid in a rake task?

转载 作者:数据小太阳 更新时间:2023-10-29 06:55:15 25 4
gpt4 key购买 nike

我正在尝试解密一组用于数据库迁移的密码。我有一些旧的 Rails 代码(实际上是一个 Runner 脚本)可以很好地解密它们。但是将相同的代码放入 Rake 任务会导致任务失败,并显示...未定义的方法 `to_a' for "secretkey":String...

为什么在字符串上调用 to_a 在 Rake 任务中无效,但在 Runner 脚本中却完全有效?

require 'openssl'

KEY = 'secretkey'

namespace :import do
task :users => :environment do
def decrypt_password(pw)

cipher = OpenSSL::Cipher::Cipher.new('bf-ecb')
cipher.decrypt
cipher.key = KEY.to_a.pack('H*') <<--------- FAILS RIGHT HERE on to_a

data = data.to_a.pack('H*')
data = cipher.update(data)
data << cipher.final
unpad(data)

end
end

... other methods
end

( rails 3.0.0, ruby 1.9.2)

最佳答案

要复制 1.8.7 功能:

1.8.7 > 'foo'.to_a # => ['foo']

你会使用:

1.9.3 > 'foo'.lines.to_a # => ['foo']

其他答案建议#chars,这是不一样的:

1.9.9 > 'foo'.chars.to_a # => ['f', 'o', 'o']

关于ruby-on-rails - rails : why is calling to_a on a string not valid in a rake task?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4465503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com