我正在尝试保存与相应记录的哈希名称相同的文件名。
当前数据导入器正在使用Rails,但是数据库和相应的架构是在应用程序外部生成的。
当我在Account
中阅读psql
模型时,我看到:
select * from accounts where id=1
id | 1
first_name | JOHN
middle_name |
last_name | DOE
suffix |
dob | 1985-11-29 00:00:00
gender | M
hash | 5062a455-ad6e-4104-ae49-92d12b1fbd27
当我使用ActiveRecord时,我得到以下信息:
Account.first
id: 1,
first_name: "JOHN",
middle_name: "",
last_name: "DOE",
dob: Fri, 29 Nov 1985 00:00:00 UTC +00:00,
gender: "M",
hash: "5062a455-ad6e-4104-ae49-92d12b1fbd27"
当我尝试使用Account.first.hash
访问哈希时,我得到-1029718433662254257
而不是"5062a455-ad6e-4104-ae49-92d12b1fbd27"
。
我本质上想做filename = "#{account.hash}.png"
,但是现在我所有的文件名都是负数而不是UUID。
知道发生了什么吗?
答案 0 :(得分:2)
hash
是Ruby中基于Object
的方法。除了更改数据库中字段的名称之外,您实际上无法做任何事情。 https://apidock.com/ruby/Object/hash
为此对象生成一个Fixnum哈希值。该功能必须具备 a.eql?(b)暗示a.hash == b.hash的属性。哈希值 由Hash类使用。任何超过哈希容量的哈希值 Fixnum将在使用前被截断。
如评论中所建议,您也可以直接使用
进行访问# in your view or model
account[:hash]