我看到了这个...
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>
任何的想法?
最佳答案
您可能需要调用 all
对此也是如此。只需 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
从 all
开始有点重复已经返回一个数组,但在 Rails 4 中它是必需的。
关于ruby-on-rails - 将 Active Record 集转换为哈希数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225232/