Mi chiedo se la scrittura di funzioni come questa è considerata buona o cattiva forma.Restituzione di vero o messaggio di errore in Ruby
def test(x)
if x == 1
return true
else
return "Error: x is not equal to one."
end
end
e quindi di utilizzare lo facciamo qualcosa di simile:
result = test(1)
if result != true
puts result
end
result = test(2)
if result != true
puts result
end
Il che viene visualizzato il messaggio di errore per la seconda chiamata per testare.
Sto pensando di farlo perché in un progetto di rotaie sto lavorando all'interno del mio codice controller faccio chiamate ai metodi di istanza di un modello e se qualcosa va storto voglio che il modello restituisca il messaggio di errore al controller e il controller prende quel messaggio di errore e lo inserisce nel flash e reindirizza. Un po 'come questo
def create
@item = Item.new(params[:item])
if [email protected]?
result = @item.save_image(params[:attachment][:file])
if result != true
flash[:notice] = result
redirect_to(new_item_url) and return
end
#and so on...
In questo modo non sto costruendo i messaggi di errore nel controller, semplicemente li passando lungo, perché io davvero non voglio il controller di essere preoccupati con ciò che il metodo in sé save_image fa proprio se o non ha funzionato.
Ha senso per me, ma sono curioso di sapere se questo è considerato un metodo buono o cattivo di scrivere metodi. Tenete a mente che lo sto chiedendo nel senso più generale che riguarda principalmente il rubino, succede solo che lo sto facendo in un progetto di rotaie, la vera logica del controller in realtà non è la mia preoccupazione.
Rubino di solito usa 2 spazi per il rientro, non 4. –