0

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 (model)

def self.to_csv
    CSV.generate({}) do |csv|
        csv << data.first.keys
        data.each do |hash|
           csv << hash.values
        end
    end

end

When I click the CSV link to export this I get the error. I have required 'csv' This is the guide I followed http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast

Template is missing

Missing template patient_record/show, application/show with {:locale=>[:en], :formats=>[:csv], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/Users/samantha.klonaris/RubymineProjects/intermediate_form_reader/app/views"

4

1 回答 1

0

在您引用的 RailsCast 教程中,products_path对应于 ProductsController 的操作为index. Ryan 向您展示了他如何定义ProductsController#index响应 csv。

在您的情况下,您调用patient_record_path了通常映射到PatientRecordsController的操作show和指定哪个患者的参数。您向我们展示了一个show方法定义,但它包含在一个名为的文件中record_controller.rb,这不是PatientRecordsController类定义的正常命名。该错误表明您有一个PatientRecordsController带有show定义的单独类,但默认为呈现相应的显示模板。

正如其他评论者所提到的,我相信您的调用存在问题to_csv,但我认为您目前还没有接触到该代码。

于 2013-07-02T18:04:59.297 回答