我的控制器上有一个搜索方法,可以响应html或CSV格式。 html格式根据预期呈现搜索结果,我希望CSV格式通过下载结果的CSV文件来工作。Rails:在respond_to block(csv)中处理错误
大多数情况下,调用send_data
并生成CSV文件。但是,在某些情况下,我不需要想要生成CSV,而是显示一个错误(例如,当用户使用了所有分配的月份导出时)。下面的代码是我想就像要做的简化版本,但是这似乎并不像我试图处理这个错误。
respond_to do |format|
format.html do
@results = ...
render "index"
end
format.csv do
@results = ...
if user_can_export?(@results)
send_data generate_csv(@results), filename: "Search-Results.csv"
else
flash[:error] = "Unable to export search results."
render "index"
end
end
end
有没有什么办法让我摆脱这个块和呈现HTML或我坚持在这里生成一个csv文件?我宁愿不通过发送包含错误消息的csv文件来处理这种情况,但这似乎是我目前最好的选择。帮助表示赞赏!
了''后.'“无法导出搜索结果”'会导致错误的当前请求周期显示提示信息。 – max
好抓。这不是所有真实的代码,只是我输入的一个想法。我修复了 –