我在同一视图上有两个csv导出,但都具有不同的数据。目前,它只是为两者下载相同的数据。
查看
<%= link_to "Trials export", data_path(format: "csv") %>
<%= link_to "Results export", data_path(format: "csv") %>
控制器
respond_to do |format|
format.html
format.csv { send_data @trial_data.trials_export, filename: "trials_export.csv" }
format.csv { send_data @trial_data.results_export, filename: "results_export.csv" }
end
模型
def self.trials_export
csv << [ data goes in here all work fine ]
end
def self.results_export
csv << [ data goes in here all work fine ]
end
答案 0 :(得分:1)
在link_to内,您可以添加其他数据/参数,例如format_data(变量名可以是任意值)
查看
<%= link_to "Trials export", data_path(request.parameters.merge({:format => :csv, format_data: "trial"})) %>
<%= link_to "Results export", data_path(request.parameters.merge({:format => :csv, format_data: "result"})) %>
在csv块内的控制器中,您可以使用if / case命令对其进行拆分
控制器
respond_to do |format|
format.html
format.csv do
if (params[:format_data] == 'trial')
send_data @trial_data.trials_export, filename: "trials_export.csv"
elsif (params[:format_data] == 'result')
send_data @trial_data.results_export, filename: "results_export.csv"
end
end
end