Мы обновляем приложение rails 2.Мы с радостью использовали fake_arel , который обеспечивает очень хороший "или" охват.
Теперь, с рельсами 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 в другом проекте, но он также не предлагает ничего подобного.