我得到未定义的方法#merge
但是#merge
方法在第二个块中运行良好。 Block 1有什么问题?
# Block 1
network_posts = []
@networks.each do |network|
network_posts << network.posts.as_json.merge('pic' => network.pic.url)
end
# Block 2
network = []
@networks.each do |network|
network << network.as_json.merge('pic' => network.pic.url)
end
答案 0 :(得分:2)
as_json
方法没有义务返回哈希。它可以返回它想要的任何东西,一个字符串,一个数字,一个布尔值,甚至可以返回一个数组。假设支持merge
是错误的。
因为这似乎是在一个数组的集合(network.posts
)上运行。合并它是不切实际的。您可以合并每个记录的as_json
结果:
network.posts.map do |post|
post.as_json.merge(...)
end