Rails: самый простой способ обеспечить загрузку файлов?

Ребята, в настоящее время почти закончили писать приложение для рельсов, которое позволяет загружать базу данных в формате CSV. Это генерируется при первом просмотре индекса.

Есть ли простой способ вставить ссылку на помощника, который возвращает документ CSV? То есть легко ли вставлять ссылки на помощников? Это сделало бы много проблем, у меня было намного легче

2 ответа

Решение

Если вы придерживались общих соглашений, то вы зарегистрировали MIME-тип для CSV и вернуть содержимое файла CSV через ваш #index действие. Так что ваш помощник по ссылкам будет выглядеть так:

link_to 'export as csv', posts_path(:format => :csv)

Если взамен ваш файл генерируется, когда индекс является первым представлением, но НЕ BY Rails, вы можете избежать стандартного рендеринга и вместо этого вызывать send_data или send_file (проверьте API для них).

# in your controller:
def index

  # your suff here

  @csv_path = find_or_generate_csv_file
  send_data @csv_path, :type=>"text/csv", :disposition=>'attachment'
end

protected
  def find_or_generate_csv_file
    #your file generation logic
  end
Другие вопросы по тегам