我可以选择ActiveRecord中除一个属性之外的所有属性吗?

Dan*_*Tao 2 activerecord ruby-on-rails

假设我想加载一堆Foo记录,但我只想将idtitle属性加载到内存中:

foos = Foo.where([condition]).select('id, title')
Run Code Online (Sandbox Code Playgroud)

如果我想加载所有属性EXCEPT(即因为它是巨型文本列)会怎么样?你知道,像:

foos = Foo.where([condition]).select('* except giant_text_dump')
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.但有办法吗?

Jua*_*tas 6

像这样?

Foo.where([condition]).select(*Foo.attribute_names.reject { |attr| attr == 'giant_text_dump' })
Run Code Online (Sandbox Code Playgroud)