我正在生成一个 csv 文件作为报告。如果模型验证通过,它工作正常。如果验证失败,我想在“新”操作视图上显示错误,并让用户保持在那里,直到他们纠正错误,就像任何 HTML 表单一样。但是,由于我在表单中使用 format=>'csv',所以当用户输入未通过模型验证时,我会收到模板丢失错误。
Missing template /new.html with {:formats=>[:csv],
我在我的控制器中尝试了以下渲染,但它不起作用:
format.csv { render :template=>"new.html.erb"}
我什至尝试在初始化程序中添加一个处理程序,但没有奏效:
ActionController::Renderers.add :csv do |csv, options|
self.content_type ||= Mime::CSV
self.response_body = csv.respond_to?(:to_csv) ? csv.to_csv : csv
end