[英]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.