Я создаю трекер портфеля, и у меня есть два CSV - один, чтобы показать все мои портфели (на моей странице индекса), и один, чтобы показать конкретное портфолио (на моей странице показа). Это два метода:
def index
@portfolios = Portfolio.all
csv_options = {col_sep: ',', force_quotes: true, quote_char: '"' }
filepath = "app/views/portfolios/investments.csv"
CSV.open(filepath, "wb", csv_options) do |csv|
headers = ...
csv << headers
@portfolios.each { |portfolio| csv << portfolio }
end
respond_to do |format|
format.html
format.csv { send_data @portfolios.to_csv, filename: "investments_#{Date.today}.csv"}
end
end
def show
csv_options = {col_sep: ',', force_quotes: true, quote_char: '"' }
filepath = "app/views/portfolios/portfolio_#{@portfolio.name}.csv"
CSV.open(filepath, "wb", csv_options) do |csv|
headers = ...
csv << headers
@portfolio.transactions.each { |transaction| csv << transaction }
end
respond_to do |format|
format.html
format.csv { send_data Portfolio.to_csv, filename: "#{@portfolio.name}_#{Date.today}.csv"}
end
end
Файлы CSV генерируются правильно, но когда я пытаюсь загрузить CSV на своей странице показа (например, portfolios/1.csv
), содержимое загруженного файла принадлежит CSV для моей страницы индекса (даже если имя файла правильно).
Заранее большое спасибо!