컨트롤러에 html 또는 CSV 형식으로 응답하는 검색 방법이 있습니다. html 형식은 예상대로 검색 결과를 렌더링하며 결과의 CSV 파일을 다운로드하여 CSV 형식을 작동하도록합니다.레일 : respond_to 블록 내의 처리 오류 (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
좋은 캐치. 이 모든 것은 실제 코드가 아니며, 아이디어를 제공하기 위해 타이핑 한 것입니다. 위의 오타가 수정되었습니다 –