Я впервые использую sidekiq для выполнения запланированных действий в Rails 4. Я создал метод выполнения для поиска пустых hashtagable_id и удаления их из базы данных. Я получаю сообщение об ошибке ниже, когда пытаюсь запустить задание с помощью API для консоли Rails.
remove_hashtag_orphans.rb
from -e:1:in `load'
from -e:1:in `<main>'>> RemoveHashtagOrphans.new.perform(hashtaggable_id)
NameError: undefined local variable or method `hashtaggable_id' for main:Object
Содержимое файла вакансий приведено ниже.
class RemoveHashtagOrphans < ActiveJob::Base
queue_as :default
def perform(hashtaggable_id)
#Needs argument
orphans = SimpleHashtag::Hashtag.all.select {|h| h.hashtaggables.size == 0}
orphans.map(&:destroy)
end
end
RemoveHashtagOrphans.new.perform(hashtaggable_id)
Оригинальный метод без помощника таков.
def self.clean_orphans
# Needs refactoring to call a single SQL query
orphans = self.all.select { |h| h.hashtaggables.size == 0 }
orphans.map(&:destroy)
end
hashtaggable_id
, прежде чем передавать его в качестве аргумента. - person max pleaner   schedule 26.04.2016