代码之家  ›  专栏  ›  技术社区  ›  Schroedinger

rails:提供文件下载的最简单方法?

  •  0
  • Schroedinger  · 技术社区  · 16 年前

    G'Day的人,目前已经几乎完成了一个Rails应用程序的编写,它允许CSV下载数据库。这是在第一次查看索引时生成的。

    有没有一种简单的方法可以插入指向返回csv文档的助手的链接?也就是说,插入到帮助者的链接容易吗?这会给我带来很多麻烦

    2 回复  |  直到 16 年前
        1
  •  2
  •   Thomas R. Koll    16 年前

    如果您坚持通用约定,那么您为csv注册了一个mime类型,并通过 #index 行动。所以你的链接助手应该是这样的:

    link_to 'export as csv', posts_path(:format => :csv)
    
        2
  •  0
  •   Oinak    16 年前

    作为交换,如果您的文件是在索引是第一个视图而不是由rails生成的,那么您可能希望避免standart呈现和调用 发送数据 发送文件 取而代之(检查它们的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