2016-04-04 53 views
1

私はこのクエリにfind_by_sqlを使用していますが、配列を返しています。 Job.hongkong_jobs.where(status: true)のようなことをしたいのですが、それは配列なのでできません。配列をActiveRecord :: Relationに変換します

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" } 

だから私の質問は次のとおりです。私は、この範囲内で.whereを行うことができますので、私は、アクティブレコードオブジェクトに変換することができますか? -

答えて

0

1 SQLでそれを行う:あなたは生のSQLとして上記持つSQLクエリにそれを置く

OR

2 - ルビーでソート操作を行います。レコードを得るためにあなたのアレイで使用selectをそれは、あなたはActiveRecordのを得ることができ、アクティブレコードのarrayを考えると、あなたの判断基準(すべての真のステータスを持っているもの)

0

にマッチします::関係を最初map機能を使用してレコードのidsを取得することにより、その後、を使用10をモデルからフェッチします。あなたのケースでは

Job.where(array.map(&:id))

0

私はJob.where(aray.map(&:id))と試みたが、私のために働いていません。 私の解決策は次のとおりです:

​​

乾杯。

関連する問題