【问题标题】:Specify fields to exclude from Rails query result指定要从 Rails 查询结果中排除的字段
【发布时间】:2015-12-05 20:51:01
【问题描述】:

要为查询结果选择特定字段,可以使用select 方法:

Client.select(:name)

这将返回一个客户端关系,其中 name 是唯一初始化的字段。

我想选择所有字段,除了我指定的字段。与 select 完全一样,但反过来。

Client.select(name: false) # Hypothetical! Not real!

上述假设将返回一个客户关系,所有字段都已初始化,name 除外。

显然,这个假设的例子是行不通的。有什么可以吗?

约束:我想完全在 ActiveRecord/SQL 的域内执行此操作——我不想转换为 Ruby 数组或哈希。

谢谢!

【问题讨论】:

  • 我不知道谁投了反对票或为什么投反对票,但这是一个很好的问题和一个很好的答案

标签: ruby-on-rails activerecord


【解决方案1】:

你可以使用:

Client.select(Client.column_names - ["name", "some_other_column"])

编辑:Rails 5 还引入了ignored_columns,如果你想默认排除列。

https://github.com/rails/rails/pull/21720 https://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-ignored_columns-3D

【讨论】:

  • 完美运行。谢谢!
猜你喜欢
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多