0

私はこのスコープを持っています、それはうまくいきます:

scope :concurrent, lambda{ |a,r,e| where(application_id: a, role_id: r, environment_id: e) }

次のように使用されます。

l = Deployment.last
concurrent_deployments = Deployment.concurrent(l.application_id, l.role_id, l.environment_id)

すべての同時実行が同時に行われる展開をキャプチャしないように変更する必要があります。したがって、ターゲットの ID であるパラメーターiを追加できます。

私は書き直します:

scope :concurrent, lambda{ |a,r,e,i| where(application_id: a, role_id: r, environment_id: e, id: !i) }

これはうまくいきません。

どうすればいいですか?

4

1 に答える 1

0

スコープを2つ持つことはできますか?

scope :concurrent, lambda{ |a,r,e| where(application_id: a, role_id: r, environment_id: e) }
scope :concurrentx, lambda{ |a,r,e,i| where('application_id = ? AND role_id = ? AND environment_id = ? AND id <> ?',a,r,e,i) }
于 2013-02-28T22:26:11.803 に答える