Perché:
something = false
restituisci sempre falso?
Poiché si tratta di un compito e non di un confronto, sembra più sensato restituire il risultato (successo / fallimento) del compito ( come quasi ogni altro compito che fai ).
EDIT - questo è sbagliato, come indicano le risposte sottostanti. Colpa mia. Leggera scoreggia cerebrale. Guarda l'impeto originale per questa domanda nei commenti qui sotto.
Che cosa succede se some_boolean_var = false
fallisce per qualsiasi ragione (improbabile, ma teoricamente possibile, specialmente se hai definito un metodo personalizzato per questa azione)? Ciò restituirebbe anche false, quindi non hai alcuna indicazione sul fatto che il compito abbia effettivamente funzionato.
Fondamentalmente significa semplicemente che non puoi combinare compito e confronto in una riga come puoi fare con quasi tutto il resto in Rails. Ad esempio, non puoi fare:
if something = false (note the single =)
do stuff
end
Voglio dire che puoi farlo ma non se vuoi controllare e assicurarti che l'assegnazione sia andata a buon fine.
È davvero strano per me.
Sono sicuro che c'è una ragione per questo quindi per favore chiariscimi:)
Grazie in anticipo!