ActiveRecord - 获取表的所有属性

Zub*_*Man 3 ruby activerecord ruby-on-rails

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

鉴于以下项目:

Feedback {
  :id => 1,
  :comments => "Works well",
  :recommendations => "Change this one thing"
}
Run Code Online (Sandbox Code Playgroud)

我将不得不将数据提取为{id: 1, comments: "Works Well", recommendations: "Change this one thing"},如果我知道我处理的特定字段是毫无意义的。不幸的是,我需要它来很好地处理反馈表上的任何排列或字段集合。

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

谢谢!

Naf*_*fer 5

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

Feedback.columns_hash
Run Code Online (Sandbox Code Playgroud)

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

Feedback.column_names
Run Code Online (Sandbox Code Playgroud)

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

Feedback.content_columns
Run Code Online (Sandbox Code Playgroud)