我的控制器上有一個搜索方法,可以響應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
好抓。這不是所有真實的代碼,只是我輸入的一個想法。我修復了 –