0
我正在開發電子商務應用程序,並且我有一個csv導出功能,可以導出所有產品詳細信息,如名稱,價格等。每個產品都在一行中,並且每個產品屬性都有一列。我想添加一個列到文件中,其中將包含每個產品的網址。我想這樣做的原因是,我可以將其用作可以提交給各個購物網站的產品Feed。Rails 4 - 將路由導出到CSV
這是我在控制器中的導出代碼。我如何添加一個名爲路由到這個列?模型中沒有路線列。
#controller
def productlist
@listings = Listing.all
respond_to do |format|
format.html
format.csv { send_data @listings.to_csv(@listings) }
end
end
#model
def self.to_csv(listings)
wanted_columns = [:sku, :name, :designer_or_brand, :description, :price, :saleprice, :inventory, :category]
CSV.generate do |csv|
csv << ['Product_ID', 'Product_title', 'Designer_or_Brand', 'Description', 'Price', 'SalePrice', 'Quantity_in_stock', 'Category'] + [:Image, :Image2, :Image3, :Image4]
listings.each do |listing|
attrs = listing.attributes.with_indifferent_access.values_at(*wanted_columns)
attrs.push(listing.image.url, listing.image2.try(:url), listing.image3.try(:url), listing.image4.try(:url))
csv << attrs
end
end
end
在URL行路線,我得到一個錯誤說'缺少主機鏈接!請提供:host參數,設置default_url_options [:host],或將only_path設置爲true。 – Moosa 2014-10-27 19:42:22
你如何從控制檯執行它? – blelump 2014-10-27 19:53:42
不,我點擊本地主機上的導出按鈕。我試着設置':only_path => true'選項。當我這樣做時,導出運行時沒有錯誤,但csv中的url列爲空白。 – Moosa 2014-10-27 19:59:24