Ссылка на рендеринг CSV в формате HTML - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть ссылка в моем приложении rails, которая должна экспортировать CSV. Но когда я нажимаю на ссылку, она перезагружает страницу в виде HTML. Я попытался добавить response.headers['Content-Type'] = 'text/csv' response.headers['Content-Disposition'] = 'attachment; filename=invoice.csv' к контроллеру, но это не помогает.

Контроллер

def index

  respond_to do |format|
    format.html
    format.csv do
      response.headers['Content-Type'] = 'text/csv'
      response.headers['Content-Disposition'] = 'attachment; filename=custome_incentives.csv'
      send_data @incentives.to_csv
    end
  end
end

эрб

<%= link_to 'Download to CSV', incentives_path(property.slug, format: :csv), class: 'btn csv' %>

обновление

Я попытался поместить в блок format.csv binding.pry, и он не срабатывает.

1 Ответ

1 голос
/ 08 апреля 2019

При условии, что все маршруты в порядке, вы пробовали таким образом включить filename, как это?

def index

  respond_to do |format|
    format.html
    format.csv do
      send_data @incentives.to_csv, filename: 'custome_incentives.csv'
    end
  end
end

Возможно также форсироватьссылка для скачивания , если это не сработает.

...