如何将模型代码中发生的错误消息发送回视图。我的意思是。我有一个

begin
       Some code
rescue
       Exception Handling
end


现在发生错误,在救援中,我想将消息发送回控制器,以便它可以在视图中显示。我是否必须使用一个变量,该变量必须包含在一个请求中出现的许多错误消息,将它们连接起来并将其发送回控制器,以便可以在视图中显示它? Rails已经显示了一些错误消息,例如field不能为空。我问的是其他异常,它们发生在模型代码中的函数中。

最佳答案

保存/创建模型时发生的异常

我使用ActiveRecord callbacks after_validation,after_validation_on_create和before_save(视情况而定)来获取任何额外的数据并验证是否已准备好保存所有内容。然后,如果有任何问题,我使用add_to_base将异常存储在errors [:base]中。这样,视图将以与显示任何其他验证错误相同的方式显示错误消息。

请记住,如果您的before_save方法返回false,则保存将失败。

其他模型方法的例外

所有常用方法均可用:


引发控制器将捕获的特定异常。异常可以包括错误号,视图将其转换为错误消息。或者模型可以将error_num导出到error_msg哈希
返回错误代码作为方法的返回参数。例如,如果您还希望在工作正常时也使用Flash给出正的msg,则可以返回msg_code。然后为错误设置负的msg代码,为不同类型的成功设置正代码。
建立一个@error(或其他)实例变量,以供调用者检查。

关于ruby-on-rails - Rails异常处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3128580/

10-13 02:09
查看更多