Me pregunto si escribir funciones como esta se considera buena o mala forma.Devolución verdadero o mensaje de error en Ruby
def test(x)
if x == 1
return true
else
return "Error: x is not equal to one."
end
end
Y luego de usar que hacemos algo como esto:
result = test(1)
if result != true
puts result
end
result = test(2)
if result != true
puts result
end
Lo cual muestra el mensaje de error para la segunda llamada a prueba.
Estoy considerando hacer esto porque en un proyecto de rieles estoy trabajando dentro de mi código de controlador realizo llamadas a los métodos de instancia de un modelo y si algo sale mal quiero que el modelo devuelva el mensaje de error al controlador y el controlador toma ese mensaje de error y lo pone en el flash y redirige. Un poco como esta
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...
De esa manera no estoy construyendo los mensajes de error en el controlador, simplemente pasando a lo largo, porque realmente no quiero que el controlador se ocupa de lo que el método save_image sí hace justamente si o no funcionó.
Tiene sentido para mí, pero tengo curiosidad acerca de si esto se considera una forma buena o mala de escribir métodos o no. Tenga en cuenta que estoy preguntando esto en el sentido más general perteneciente principalmente al rubí, simplemente sucede que estoy haciendo esto en un proyecto de rieles, la lógica real del controlador realmente no es de mi incumbencia.
Rubí por lo general utiliza 2 espacios para sangrar, no –