【问题标题】:ActiveRecord - Getting all Attributes of a TableActiveRecord - 获取表的所有属性
【发布时间】:2015-08-14 12:41:13
【问题描述】:

我正在创建一个 gem,它必须与如何配置表上的属性的任何可能组合一起工作 - 我使用它的特定情况是反馈,因此我们将在此示例中使用它:

给定以下项目:

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 方法,以及获取键/值对中的键和值的其他典型技巧,但无济于事。

谢谢!

【问题讨论】:

  • Feedback.first.attributes 你完成了..
  • Feedback.first.as_json 也可以,可以选择传递额外的选项,例如 Feedback.first.as_json(include: :association)

标签: ruby-on-rails ruby activerecord


【解决方案1】:

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

Feedback.columns_hash

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

Feedback.column_names

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

Feedback.content_columns

【讨论】:

    【解决方案2】:

    使用attributes 方法。

    喜欢Feedback.first.attributes,你就完成了。

    【讨论】:

      猜你喜欢
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2010-12-04
      相关资源
      最近更新 更多