Я не очень хорошо знаком с Ruby, но, поскольку он имеет корни Perl, может существовать конструкция, позволяющая записать его так:
$_ = Time->parse($_) for params[:task][:completed_at] || ();
в основном использует цикл for для создания псевдонима для переменной, если она существует
может быть что-то вроде:
(params[:task][:completed_at] || ()).each { |i| i = Time.parse(i) }
редактирование:
Я вижу, что в Ruby есть ключевое слово alias
. Я недостаточно знаком с ним, чтобы привести пример с Ruby, но в Perl вышеприведенное также может быть написано:
local *_ = \$params[$task][$completed_at];
$_ = Time->parse($_) if defined;
, который указывает, что $_
будет псевдонимом для $params[$task][$completed_at]
Я попытался поиграть с этим кратко в Ruby, но не нашел способа присвоить псевдоним идентификатору, только глобальные переменные.