Для модели с параметром default_scope для фильтрации всех устаревших записей:
# == Schema Information
#
# id :integer(4) not null, primary key
# user_id :integer(4) not null, primary key
# end_date :datetime
class Ticket < ActiveRecord::Base
belongs_to :user
default_scope :conditions => "tickets.end_date > NOW()"
end
Теперь я хочу получить билет. В этом случае с_exclusive_scope это путь, но защищен ли этот метод? Только это работает:
Ticket.send(:with_exclusive_scope) { find(:all) }
Вид взлома, не так ли? Итак, какой правильный способ использовать? Особенно при работе с ассоциациями это становится еще хуже (учитывая, что у пользователя много билетов):
Ticket.send(:with_exclusive_scope) { user.tickets.find(:all) }
Это так уродливо!!! - не может быть рельсовым способом!?