我在rails异常处理方面经验不足。我有这个片段开始和救援块异常处理
def update
@game = Game.find(params[:id])
begin
params[:game][:tier] = eval(params[:game][:tier])
rescue
@game.errors.add(:tier, "Please make sure the correct format for tier, example [100, 1000, 10000]")
end
#.... more code
end
如果PARAMS [:游戏] [:一线] = “[100,200]” 一切都是完美的。 如果出现ruby语法错误的情况,如params [:game] [:tier] =“[100,200] abc”,则会发现错误,但应用程序只是粉碎。
如何处理“eval()”的异常,使其不会破坏应用程序?为什么在这种情况下开始和营救不起作用?感谢所有帮助红宝石启蒙谢谢:)
哇,这是危险的注射。很多感谢,而JSON.parse确实工作得很好。 :D – sovanlandy 2013-04-24 15:29:57
再一次证明(在大多数情况下)'eval'是邪恶的,可以用更好的方式取代。 – 2013-04-24 15:31:55
赞同padde :) – sovanlandy 2013-04-24 15:32:43