3

我有一个运行良好的搜索表单,我想为用户添加一个导出,以将结果集的内容发送到 XLS 文件。

我也成功地实现了 to_xls,但是它给了我正在搜索的对象的最大可能范围,而不是视图中显示的过滤结果。

def index

  @search = Expense.search(params[:q])
  @expense_list = @search.result.sort_by(&:expense_date) 

    respond_to do |format|
      format.html
      format.xml { render :xml => @expense_list }
      format.xls { send_data @expense_list.to_xls, :filename => '123.xls'}
    end

end

与ransack如何使用GET方法有关吗?任何帮助都会很棒。

谢谢!

4

3 回答 3

3

我知道这是一个黑客,在花了很多小时没有得到它之后,我还是使用了它。

<a href="/expenses.xls?<%= request.fullpath.split("?")[1]  %>">make xls</a>

所以基本上它在?之后使用搜索路径,然后将其添加到你的 model.xls 输出路径中,然后它就可以工作了。我自己讨厌它,必须有更好的方法,但期限。

这里有一个很好的链接

于 2013-05-06T09:25:05.340 回答
0

Ronin为这个相关问题提供了一个简单的解决方案,但使用 CSV 而不是 XLS。就我而言,使用 Ronin 的回答,我只是重写了使用 XLS 的链接,如下所示

<%= link_to "Download Excel", reports_path(params.merge(format: "xls")) %>
于 2014-09-18T09:58:48.447 回答
0
%= link_to "Download Excel", yours_controller_path(params.merge(format: "xls")) %>
于 2016-09-25T20:44:02.147 回答