Мне интересно, что такие функции написаны как хорошие или плохие.
def test(x)
if x == 1
return true
else
return "Error: x is not equal to one."
end
end
И затем, чтобы использовать его, мы делаем что-то вроде этого:
result = test(1)
if result != true
puts result
end
result = test(2)
if result != true
puts result
end
Что именно отображает сообщение об ошибке для второго вызова для тестирования.
Я планирую это сделать, потому что в проекте rails я работаю внутри своего кода контроллера, я делаю вызовы методов экземпляра модели, и если что-то пойдет не так, я хочу, чтобы модель возвращала сообщение об ошибке контроллеру и контроллер принимает это сообщение об ошибке и помещает его во флэш-память и перенаправляет. Как-то вроде этого
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...
Таким образом, я не создаю сообщения об ошибках в контроллере, просто передавая их, потому что я действительно не хочу, чтобы диспетчер был связан с тем, что сам метод save_image делает, независимо от того, работает он или нет.
Это имеет смысл для меня, но мне любопытно, считается ли это хорошим или плохим способом написания методов. Имейте в виду, я спрашиваю об этом в самом общем смысле, относящемся главным образом к рубину, просто случается, что я делаю это в проекте рельсов, фактическая логика контроллера действительно не моя проблема.