Тернарное выражение с «определено?» возвращает «выражение» вместо значения?

Я новичок в Ruby и Rails, но даже после поиска переполнения стека и поиска в Google я не смог найти ответ на этот вопрос.

У меня есть простое сокращение Ruby if, которое должно возвращать integer, например:

# in the context of this erb document `amount` is defined as 5.
@c = ( defined? amount ? amount : r( 1,4 ) )

r()— это пользовательская вспомогательная функция, которая возвращает случайное число между , в данном случае 1 и 4.

Я намереваюсь, чтобы это работало следующим образом:ifamountопределяется, затем используется число, определенное как amount, elseгенерирует случайное число от 1 до 4 и использует его вместо этого.

Однако при выводе @cRuby выводит expression, а не число.

Что мне нужно сделать, чтобы все заработало так, как я задумал, и что я делаю неправильно?

Большое спасибо за прочтение!

7
задан Bhushan Lodha 6 May 2012 в 02:52
поделиться