如何在作用域活动记录中仅选择一些属性?

时间:2014-08-24 11:19:21

标签: ruby-on-rails rails-activerecord

如果我这样做:

@company.projects.joins(clients).select('projects.id', 'clients.name as client_name', 'budget_id', 'budget_visible')

我只获得了我正在寻找的3个属性。

我还在project.rb中声明了以下范围:

scope :active, -> { where(active: true).includes(:client).where('clients.active' => true).references(:client) }

当我这样做时:

@company.projects.active.select('projects.id', 'clients.name as client_name', 'budget_id', 'budget_visible')

我获得了所有属性,而不是我正在寻找的3个。

我缺少什么,如何只选择我想要的属性?

编辑:另一个细节:当我.to_sql时,我可以看到SQL是完美的,只返回我需要的列,但出于某种原因,当我.first.attributes时,我看到了Project的所有列而不仅仅是我需要的那些。

0 个答案:

没有答案