将数组转换为 ActiveRecord::Relation

bil*_*lal 4 activerecord ruby-on-rails find-by-sql

我正在使用find_by_sql这个查询,它返回一个数组。我想做类似的事情Job.hongkong_jobs.where(status: true),但我不能,因为它是一个数组。

 scope :hongkong_jobs, -> { find_by_sql "SELECT DISTINCT(jobs.*) FROM" + Task.near([22.275754, 114.163056], 35.17936816723013, :units => :km).joins(:job).where(jobs: {status: [:open,:new]}).to_sql.split("FROM").last.split("ORDER").first + "ORDER BY start_at ASC" }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何将其转换为活动记录对象,以便我可以.where在此范围内执行操作?

小智 6

我尝试过Job.where(aray.map(&:id)),但它对我不起作用。

我的解决方案是:

Job.where(id: array.map(&:id))
Run Code Online (Sandbox Code Playgroud)

这有效。

干杯。