我是 Sequel 和 ruby 的新手,我有一件事需要你的帮助。总之,我无法使用点运算符访问数据库查询结果。我在 padrino ruby 项目中使用续集适配器。例如,
persons = Person.all
persons.each do |p|
puts p.name . # this output correct person name, as 'john'
end
但是如果我做一些查询
persons = Person.where(:age=>20)
persons.each do |p|
puts p.name . # this line cause error
end
我比较了它们的数据类型,并且彼此不同。
puts persons # in first case - array
#<Gig:0x007fbdb6d64ef0>
#<Gig:0x007fbdb6d64838>
#<Gig:0x007fbdb6d641f8>
puts persons # in second case - object
#<Sequel::Postgres::Dataset:0x007fbdbc614898>
所以我尝试在第二种情况下将结果更改为哈希数组以使用点运算符访问字段
persons_hash= persons.collect do |p|
ro.to_hash
end
在这种情况下,我可以使用 person[0][:name] 访问用户名,但无法使用点运算符访问。
所以我想知道我应该如何使用点运算符访问 Sequel 查询结果。
谢谢 :)