指定要从Rails查询结果中排除的字段

iva*_*ese 2 activerecord ruby-on-rails

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

Client.select(:name)
Run Code Online (Sandbox Code Playgroud)

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

我想选择所有字段,除了我指定的字段.完全像选择,但反过来.

Client.select(name: false) # Hypothetical! Not real!
Run Code Online (Sandbox Code Playgroud)

上述假设将返回客户端与初始化的所有字段的关系,除了name.

显然,这个假设的例子不起作用.有什么事吗?

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

谢谢!

Dav*_*dge 7

你可以使用:

Client.select(Client.column_names - ["name", "some_other_column"])
Run Code Online (Sandbox Code Playgroud)