2015-09-21 5 views
0

Мне нужно отправить 2 действия на задний план. Я мог бы написать:Задержка работы с лямбдой

myobject.delay.action1 
myobject.delay.action2 

Но я не могу быть уверен, что action2 начинается послеaction1 закончил, я могу?

Так что вместо этого я мог бы создать метод «на лету».

def action1and2 
    myobject.action1 
    myobject.action2 
end 

myobject.delay.action1and2 

но глупо создавать именованную функцию, чтобы сделать эту бессмысленную группу, не так ли?

Так вместо этого, вдохновленный JS, я думал о написании лямбда:

-> { 
    myobject.action1 
    myobject.action2 
} 

Могу ли я отложить такую ​​функцию? Или есть альтернатива моей ситуации?

+4

если action2 должен прийти после действий1, то, конечно, они каким-то образом связаны между собой и могут быть даны содержательное имя – Yule

ответ

0
myobject.delay.instance_eval { action1; action2 } 
+0

Как бы один пройти delayed_job Params к этому? Как 'run_at'? –

+0

'myobject.delay (run_at: Date.tomorrow) .instance_eval {...}' – Aetherus

+0

myobject.delay.instance_eval {action1; action2} эквивалентно –

Смежные вопросы