1
Je souhaite remplacer une étendue existante pour y ajouter une condition supplémentaire. J'ai montré ma tentative de faire cela en utilisant alias_method. Malheureusement, cette approche ne fonctionne pas avec les étendues, j'obtiens une erreur de méthode non définie. Comment puis-je le faire avec des étendues?Surcharge d'une étendue dans les rails 3
module Delayed
module Backend
module ActiveRecord
class Job < ::ActiveRecord::Base
belongs_to :queue
scope :in_unlocked_queue, lambda {
joins(:queue) & Queue.unlocked
}
alias_method :orig_ready_to_run, :ready_to_run
scope :ready_to_run, lambda {|worker_name, max_run_time|
orig_ready_to_run(worker_name, max_run_time).in_unlocked_queue
}
end
end
end
end
Si je me souviens, vous pouvez utiliser des méthodes à la place de champs d'application dans AR3 ... mais je ne suis pas exactement sûr. – Reactormonk