首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分裂数组。红宝石

分裂数组。红宝石
EN

Stack Overflow用户
提问于 2013-12-17 11:00:05
回答 3查看 384关注 0票数 2

你能帮我解决一些问题吗?我有这样的数据库数组

代码语言:javascript
复制
 str = Hiring::Tag.all
  Hiring::Tag Load (0.1ms)  SELECT `hiring_tags`.* FROM `hiring_tags`
=> [#<Hiring::Tag id: 1, name: "tag1", created_at: "2013-12-10 11:44:39", updated_at: "2013-12-10 11:44:39">,
    #<Hiring::Tag id: 2, name: "tag2", created_at: nil, updated_at: nil>,
    #<Hiring::Tag id: 3, name: "tag3", created_at: nil, updated_at: nil>,
    #<Hiring::Tag id: 4, name: "wtf", created_at: "2013-12-11 07:53:04", updated_at: "2013-12-11 07:53:04">,
    #<Hiring::Tag id: 5, name: "new_tag", created_at: "2013-12-11 10:35:48", updated_at: "2013-12-11 10:35:48">]

我需要像这样分割这个数组:

代码语言:javascript
复制
    data:[{id:1,name:'tag1'},{id:2,name:'tag2'},
          {id:3,name:'tag3'},{id:4,name:'wtf'},{id:5,name:'new_tag'}] 

请救救我!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-17 11:03:29

一个可能的解决办法是:

代码语言:javascript
复制
Hiring::Tag.all.map {|h| {id: h.id, name: h.name} }

地图文档

票数 1
EN

Stack Overflow用户

发布于 2013-12-17 11:08:27

如果您使用ActiveRecord 4.0

代码语言:javascript
复制
Hiring::Tag.pluck(:id, :name).map{ |id, name| {id: id, name: name} }
票数 3
EN

Stack Overflow用户

发布于 2013-12-17 11:16:16

你可以试试下面的代码。

代码语言:javascript
复制
Hiring::Tag.all.inject({}) { |h, f| h[f.name.to_sym] = f.value; h }

代码语言:javascript
复制
Hiring::Tag.all.map { |f| [f.name.to_sym, f.value] }]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20632358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档