簡體   English   中英

Ruby on Rails資源中的XLS格式

[英]XLS Format in Ruby on Rails Resources

在RoR應用程序中,我希望索引資源下載xls文件。

目前,我可以下載該文件,但需要一個指向我創建的路徑的鏈接,如下所示

link_to subscribers_path(:format => :xls)

理想情況下,就像自己的subscribers_path一樣,添加格式xls,並且我不希望使用帶索引的html格式的視圖。 我的檔案結構

/subscribers
   index.html.erb
   index.xls.erb

和我的控制器代碼

def index
  @subscribers = Subscriber.all
  respond_to do |format|
    format.html
    format.xls #{send_data @subscribers.to_csv(col_sep: "/t")}
  end
end

我試圖刪除html,以查看它是否將默認設置為其他路徑,但它顯示unknownformat錯誤。 我還嘗試刪除了index.html.erb文件,以查看是否會回退到同名的另一種格式,但這沒有用。

希望我的目標很明確:如何使用資源索引路徑與xls而非html格式鏈接?

首先,要澄清一下:是的,Rails完全支持XLS。

要使用它,只需config/initializers/mime_types.rb下行放在config/initializers/mime_types.rb

Mime::Type.register "application/xls", :xls

然后,就像作者一樣,將格式更改為xls並創建一個index.xls.erb

現在,要回答您的問題,有多種方法:

我想到的第一件事就是只更改請求格式。 在您的控制器中:

class SubscriberController < ActionController::Base
  before_filter :change_format

  def index
    @subscribers = Subscriber.all
    respond_to do |format|
      format.xls #{send_data @subscribers.to_csv(col_sep: "/t")}
    end
  end

  private
    def change_format
      request.format = "xls"
    end
end

還應該有許多其他方法來執行此操作,但是我更喜歡這種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM