Вы можете использовать логический оператор OR, чтобы сделать это:
return (plan = some_api.get_plan) || 'free'
Он вернет значение левого выражения (в данном случае присваивания), если оно не nil
или false
, иначеон вернет значение правильного выражения.
Обратите внимание, что присваивание требуется только в том случае, если plan
не является локальной переменной, а является plan=
методом установки (например, attr_writer :plan
или def plan= val
).Если это не так, достаточно return some_api.get_plan || 'free'
.