我想在Rails 4中將一些數據導出爲CSV。我有兩個模型:Excursions和Inscriptions。一次遊覽有許多題詞,一次題詞屬於一次遊覽。Rails - 如何在Rails中將嵌套資源導出爲CSV?
我有我嵌套的路線這樣定義的:
resources :excursions do
resources :inscriptions
get 'exportcsv' => 'excursions#download'
end
所以我想實現的行爲是:當我訪問路線/觀光/ 1/exportcsv,一個CSV將被下載到我的電腦,它將以CSV格式包含excursion_id = 1的所有題詞。
在我的漂移模型我定義self.to_csv:
def self.to_csv(options = {})
CSV.generate(options) do |csv|
csv << column_names
self.inscriptions.each do |inscription|
csv << inscription.attributes.values_at(*column_names)
end
end
end
我的遊覽器的方法下載:
def download
@excursion = Excursion.find(params[:id])
respond_to do |format|
format.html
format.csv { send_data @excursion.to_csv }
end
end
編輯:當我去喜歡的路線:/旅行/: id/exportcsv服務器拋出ActiveRecord :: RecordNotFound錯誤。這個錯誤很容易解決,但如果我解決RecordNotFound我在此行中得到的ActionController :: UnknownFormat:
def download
@excursion = Excursion.find(params[:id])
respond_to do |format| ########THIS LINE
format.html
format.csv { send_data @excursion.to_csv }
end
end
我做錯了嗎?也許這一切的做法是不正確......
問題是什麼? CSV的輸出是什麼?您是否遇到過csv標題列或其他問題? – Dharam
@Dharam我已經更新了這個問題。抱歉! – F404