show.html.erb
<%= link_to "CSV", patient_record_path(format: "csv") %>
record_controller.rb
def show
@data_filtered = PatientData.new(:data => getDataFromURL)
respond_to do |format|
format.html
format.csv { send_data @data_filtered.to_csv }
end
end
patient_data.rb(模特)
def self.to_csv
CSV.generate({}) do |csv|
csv << data.first.keys
data.each do |hash|
csv << hash.values
end
end
端
当我点击CSV链接导出时,我收到错误消息。我需要'csv' 这是我遵循http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast
的指南缺少模板
缺少模板patient_record / show,application / show with {:locale =&gt; [:en],:formats =&gt; [:csv],:handlers =&gt; [:erb,:builder,:coffee]} 。搜索:*“/Users/samantha.klonaris/RubymineProjects/intermediate_form_reader/app/views”
答案 0 :(得分:0)
在您引用的RailsCast教程中,products_path
对应于ProductsController,其操作为index
。 Ryan向您展示了他如何定义ProductsController#index
以响应csv。
在您的情况下,您调用了patient_record_path
,PatientRecordsController
通常映射到show
,动作为show
,参数指定哪个患者。您已向我们展示了record_controller.rb
方法定义,但它包含在名为PatientRecordsController
的文件中,该文件不是PatientRecordsController
类定义的正常命名。该错误表明您有一个单独的show
类,其定义为to_csv
,但默认为呈现相应的展示模板。
我认为您的{{1}}调用存在问题,正如其他评论者所提到的那样,但我认为您此时并未考虑该代码。