【问题标题】:Ransack Search Results - to_xls?Ransack 搜索结果 - to_xls?
【发布时间】:2013-01-02 18:30:39
【问题描述】:

我有一个运行良好的搜索表单,我想为用户添加一个导出以将结果集的内容发送到 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方法有关?任何帮助都会很棒。

谢谢!

【问题讨论】:

  • 您确定在请求 xls 文件时发送了q 过滤器参数吗?

标签: ruby-on-rails ransack


【解决方案1】:

我知道这是一个 hack,在花了好几个小时没有得到它之后,我还是使用了它。

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

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

这里有一个很好的link

【讨论】:

    【解决方案2】:

    Roninthis related question, but with CSV instead of XLS 提供了一个简单的解决方案。就我而言,使用 Ronin 的回答,我只是重写了链接以使用 XLS,如下所示

    <%= link_to "Download Excel", reports_path(params.merge(format: "xls")) %>
    

    【讨论】:

      【解决方案3】:
      %= link_to "Download Excel", yours_controller_path(params.merge(format: "xls")) %>
      

      【讨论】:

      • 欢迎来到 Stack Overflow!尽管此代码可能有助于解决问题,但它并没有解释 why 和/或 如何 回答问题。提供这种额外的背景将显着提高其长期教育价值。请edit您的答案添加解释,包括适用的限制和假设。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-23
      • 2014-10-14
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多