ruby-on-rails – 你如何做一个Rails 3选择IN使用where子句

我正在使用Rails 3,我需要做一个选择,其中主键的记录是在之前的选择。您可以使用IN使用直接SQL轻松地执行此操作。这是我所做的一切显然是错误的。 Rails的做法是什么?

@task = Link.find(params[:id])
clients = Client.where('task_id = ?',@task.id).select('DISTINCT(company_id)')
company_list = []
clients.each do |client|
  company_ids << client.company_id
end
@companies = Company.where(:id => company_ids)
正如其他人所说,我会在这种情况下使用加入。使用“in”的语法也很简单,

company_ids = [1,2,3,4]
@companies = Company.where("id in (?)", company_ids)

更新

其实比现在更简单(我认为rails 3),你可以做到

company_ids = [1,2,3,4]
@companies = Company.where(id: company_ids)
http://stackoverflow.com/questions/6260288/how-do-you-do-a-rails-3-select-in-using-where-clauses

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – 你如何做一个Rails 3选择IN使用where子句