Rails экспортирует несколько CSV в том же виде - PullRequest
2 голосов
/ 22 марта 2019

У меня есть два экспорта 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

1 Ответ

1 голос
/ 22 марта 2019

внутри вашей ссылки вы можете добавить дополнительные данные / параметры, например, format_data (имя переменной может быть любым)

View

<%= 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...