我看到了这个…
How to convert activerecord results into a array of hashes
并且想要创建一个允许我将任何作用域或非作用域记录集转换为散列数组的方法.我把它添加到我的模型中:
def self.to_hash to_a.map(&:serializable_hash) end
但是,我收到此错误.
NameError: undefined local variable or method `to_a' for #<Class:0x007fb0da2f2708>
任何的想法?
解决方法
你可能也需要打电话给所有人.只是to_a可以在范围或现有结果集(例如User.active.to_hash)上正常工作,但不能直接在模型上工作(例如User.to_hash).使用all.to_a将适用于这两种方案.
def self.to_hash all.to_a.map(&:serializable_hash) end
请注意,all.to_a有点重复,因为所有已经返回一个数组,但在Rails 4中它将是必要的.