Sono abbastanza nuovo per Ruby e Rails ma anche dopo aver cercato lo stack overflow e google non sono riuscito a trovare una risposta a questo.Espressione ternaria con "definito?" restituisce "espressione" invece di valore?
Ho una semplice scorciatoia rubino if che dovrebbe restituire un integer
in questo modo:
# in the context of this erb document `amount` is defined as 5.
@c = (defined? amount ? amount : r(1,4))
r()
è una funzione di supporto personalizzato che restituisce un numero casuale compreso tra in questo caso 1 e 4.
il modo intendo questo lavoro è che if
amount
è definito, quindi utilizzare il numero definito come amount
, else
generare un numero casuale compreso tra 1 e 4 e utilizzarlo.
Quando si stampa @c
tuttavia Ruby emette expression
anziché un numero.
Cosa devo fare per far funzionare tutto ciò che intendo e cosa sto facendo male?
Mille grazie per aver letto!
Perfetto, grazie mille! Ovviamente devo ancora imparare un po 'di queste nozioni di base, ma questo è stato molto utile 'importo || r (x, y) 'funziona esattamente come volevo ed è tutto in meno caratteri allo stesso tempo. – Jannis