我目前有导入文件的文件导入功能,并记录所有错误。
我在控制器中的错误解决方案看起来像这样。 (有更多的自定义逻辑来检查是否存在错误..但是省略了这个问题)
error_report = Item.item_import(params[:file])
redirect_to vendor_path, alert: error_report
当error_report
大于允许的4kb时,我遇到了问题。显示错误和重定向用户的正确方法是什么?也许将错误绑定到对象并在html中呈现?
答案 0 :(得分:0)
您有几个选择:
将错误附加到相关的持久对象。在后续页面加载中从持久性存储中提取错误。
使用键值存储(例如Redis)来保留flash消息而不是cookie(这是4kb限制发挥作用的地方)。
使用错误消息预呈现HTML部分并在重定向之前将其缓存在缓存存储区(类似于Memcache)中,然后在下一个页面加载上呈现缓存的部分。您可以为部分名称生成唯一键,然后将其设置为单独的闪存键。
在您的特定情况下可能不是一个选项,但在其他情况下,您可以简单地截断错误消息以适应限制。