ActiveRecord - 获取表的所有属性

时间:2015-08-14 12:41:13

标签: ruby-on-rails ruby activerecord

我正在创建一个宝石,必须使用表格中属性的任何可能组合 - 我使用它的具体情况是反馈,所以我们将在这个例子:

给出以下项目:

Feedback {
  :id => 1,
  :comments => "Works well",
  :recommendations => "Change this one thing"
}

我必须将数据提取为{id: 1, comments: "Works Well", recommendations: "Change this one thing"},如果我知道我处理的特定字段是没有脑子的话。不幸的是,我需要这个与反馈表上的任何排列或字段集合很好地匹配。

所以我的问题是:Rails或ActiveRecord是否有一个方法可以让我简单地抓取所有字段和哈希中的相关数据/有没有办法迭代数据库中项目的值使用ActiveRecord。我尝试使用to_params方法将项目转换为Hash,以及其他用于获取键/值对中的键和值的典型技巧,但无济于事。

谢谢!

2 个答案:

答案 0 :(得分:2)

使用attributes方法。

Feedback.first.attributes一样,你就完成了。

答案 1 :(得分:2)

您可以在任何active_record模型上使用columns_hash类方法。

Feedback.columns_hash

或者如果您只需要列的名称,请使用column_names

Feedback.column_names

您可以使用content_columns仅获取包含数据的列,因此任何以_id,_count结尾的列都将从集合中删除。

Feedback.content_columns