通过Rails Activerecord模型迭代然后执行脚本?

时间:2014-07-24 13:06:15

标签: ruby-on-rails ruby activerecord

我正在尝试从db中的列解密加密字符串。

a=Model.select("column_name")

a.each do |i| 
   Encryptor.decrypt(Base64.decode64(i), :key=>'5b4b45ch5bch5cbh')
end
我得到的错误是:

NoMethodError: undefined method `unpack' for #<Model:0x000000057a8438>

谢谢

1 个答案:

答案 0 :(得分:1)

应该是:

a.each do |i|
  value = Encryptor.decrypt(Base64.decode64(i.column_name), :key=>'5b4b45ch5bch5cbh')
  i.update_attribute(column_name, value)
end

问题是您将ActiveRecord对象传递给Base64.decode64方法,而您应该只传递字符串作为特定的DB列值。