У меня есть ситуация, когда поведение существующего приложения меняется, и это вызывает у меня сильную головную боль.
В моем приложении есть фотографии.Фотографии имеют статус: "batch", "queue", or "complete"
.Все существующие фотографии в приложении «завершены».
99% времени мне нужно показывать только полные фотографии, а во всей существующей кодовой базе мне нужно, чтобы каждый вызов фотографий ограничивался только завершениемфотографии.
Однако на экранах, связанных с загрузкой и классификацией фотографий, мне нужно иметь возможность довольно легко переопределить эту область по умолчанию для отображения фотографий в пакетном режиме или в очереди.
Как и многие другие, мне нужночтобы найти способ легко переопределить область по умолчанию в определенных ситуациях.Я посмотрел на эти вопросы ( 1 , 2 ), и они, похоже, не отвечают тому, что я ищу.
Код, который я хотел бы сработать, таков::
class Photo < ActiveRecord::Base
...
default_scope where(:status=>'complete')
scope :batch, unscoped.where(:status=>'batch')
scope :queue, unscoped.where(:status=>'queue')
...
end
Однако это не работает.Я попытался обернуть методы области видимости в лямбды, но это тоже не сработало.
Я понимаю, что default_scope поставляется с багажом, но если я не могу использовать его с переопределениями, я смотрю на добавление scope :complete ...
и необходимость прочесывать каждый вызов к фотографиям в моем существующем приложении и добавлять .complete
для фильтрации необработанных фотографий.
Как бы вы решили эту проблему?