问题
I know that I can specify certain fields to query the database with pluck.
ids = Item.where('due_at < ?', 2.days.from_now).pluck(:id)
However I would like to know, whether there is a way to specify certain fields I would like to avoid querying from the db. Some kind of anti-pluck?
posts = Post.where(published: true).do_not_lookup(:enormous_field)
回答1:
Model#attribute_names should return array of columns/attributes. You can exclude some of them and pass to pluck or select methods.
Something like this:
posts = Post.where(published: true).select(Post.attribute_names - ['enormous_field'])
来源:https://stackoverflow.com/questions/28832738/ignoring-certain-field-when-querying-in-rails-and-activerecord