【问题标题】:can't find csv template when trying to download尝试下载时找不到 csv 模板
【发布时间】:2013-07-02 16:49:16
【问题描述】:

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

患者数据.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、应用程序/show with {:locale=>[:en], :formats=>[:csv], :handlers=>[:erb, :builder, :coffee]}。在以下位置搜索:*“/Users/samantha.klonaris/RubymineProjects/intermediate_form_reader/app/views”

【问题讨论】:

  • 为什么 to_csv 是类级别的方法?
  • 我不太确定!我按照发布的教程进行操作
  • 你在routes.rb中有patient_record_path对应的路由吗?
  • 和 Vimsha 一样,我也想知道,如何将类级方法 self.to_csv 应用于此模型实例 PatientData.new 而不会出错?有些事你没有告诉我们=)

标签: ruby-on-rails csv export


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 2015-03-19
    相关资源
    最近更新 更多