开发者社区> 问答> 正文

如何将ActiveRecord结果转换为哈希数组

我有一个查找操作的ActiveRecord结果:

tasks_records = TaskStoreStatus.find( :all, :select => "task_id, store_name, store_region", :conditions => ["task_status = ? and store_id = ?", "f", store_id] ) 现在,我想将结果转换为如下所示的哈希数组:

[0] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" }

[1] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" }

[2] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" } 这样我就可以遍历数组,并向哈希添加更多元素,然后将结果转换JSON为API响应。我怎样才能做到这一点? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 10:52:37 426 0
1 条回答
写回答
取消 提交回答
  • as_json 您应该使用as_json将ActiveRecord对象转换为Ruby Hashes的方法,尽管其名称为

    tasks_records = TaskStoreStatus.all tasks_records = tasks_records.as_json

    You can now add new records and return the result as json by calling to_json

    tasks_records << TaskStoreStatus.last.as_json tasks_records << { :task_id => 10, :store_name => "Koramanagala", :store_region => "India" } tasks_records.to_json serializable_hash 您还可以使用将任何ActiveRecord对象转换为Hash,serializable_hash并且可以将任何ActiveRecord结果转换为Array to_a,因此对于您的示例:

    tasks_records = TaskStoreStatus.all tasks_records.to_a.map(&:serializable_hash) 如果您想在v2.3之前为Rails提供一个丑陋的解决方案

    JSON.parse(tasks_records.to_json) # please don't do it

    2020-02-08 10:52:53
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载