私たちはレール2アプリをアップデートしています。私たちは幸いに、fake_arelを使用しています。これは非常に素晴らしい "または"スコープを提供します。rails 3 - 'or' scope
今、レール3で私はこれを複製する方法を見つけることができません。
私たちは、このようなコードを持っている:
scope.or(Event.horse, Event.dog, Event.trap).today
モデルは次のようになります。
class Event < ActiveRecord::Base
named_scope :horse, lambda { {:conditions => ["sport_category_id in (?)", SportCategory.find_horse_ids] }}
named_scope :dog, lambda { {:conditions => ["sport_category_id in (?)", SportCategory.find_dog_ids] }}
named_scope :trap, lambda { {:conditions => ["sport_category_id in (?)", SportCategory.find_trap_ids] }}
end
これらのスコープは、別である必要があり、すべての場所で使用されています。このモデルには、実際に組み合わせて使用される数十のスコープがあります。したがって、すべてを書き直すことが、私たちがやりたい最後のものです。
「または」スコープを一緒に使用できないことは奇妙に思えます。
誰かがRails 3でうまくいく方法を提案できますか?アイルを使用しても、私はどのように表示されません。 私たちは別のプロジェクトでmeta_whereを使用していますが、そのようなことはありません。
多分、私はこれをどこに置くべきか理解していません。もし私がそれを私のイベントモデルに入れたら(スコープ:find_scope、どこで(:event => ['馬'、 '犬'、 'トラップ')))私は得る:ActiveRecord :: StatementInvalid: ''イベント 'のために存在します – phil
それは私が書いた理由です:あなたのニーズにそれを適応させてください!あなたのモデルをここに投稿すると、私はそれを理解するのを手伝います。 –
モデルを更新しました。私はあなたがしていることがどうもどのように既存のスコープを呼び出すのかを見ることはできません。それは全体の問題です。 – phil