Rails - Задержка определенного метода с run_at в параметрах / указанием, когда публиковать

Я немного растерялся.
Я просто пытаюсь отложить проверку, например, в определенное пользователем время. Хотелось бы сделать это как можно проще.
РЕДАКТИРОВАТЬ : решено, см. Ниже.

class MyController < ApplicationController

  def new_checkin
    # default venue is "SubMate"
    @venue_id = params[:venue_id] || "4c2c3acd8abca59355760120"
    @time = params[:time]
    @checkin = Delayed::Job.enqueue(self.perform_checkin, :run_at => @time.minutes.from_now)
  end

  def perform_checkin
    foursquare.checkins.add(:venueId => @venue_id, :broadcast => "private")
  end

Результат странный: delayed_job сохраняется, действие выполняется (без запрошенной задержки @time), и я все равно получаю сообщение об ошибке:

ArgumentError in MyController#new_checkin
  Cannot enqueue items which do not respond to perform

What я скучаю? Как я могу выполнить это отложенное задание с задержкой, запрошенной пользователем?

Спасибо!

ОБНОВЛЕНИЕ
Благодаря @Roman ниже, не знал, что вы можете передавать аргументы для задержки:

def new_checkin
  @venue_id = params[:venue_id]
  @time = params[:time]
  @checkin = self.perform_checkin
end

def perform_checkin
  foursquare.checkins.delay({:run_at => @time.minutes.from_now}).add(:venueId => @venue_id, :broadcast => "private")
end
8
задан Laurent 17 May 2011 в 17:50
поделиться