在Rails中通过CSV上传读取图像URL

时间:2014-07-25 18:43:06

标签: ruby-on-rails csv paperclip

我正在尝试上传包含图片网址作为其中一个字段的CSV文件。我正在使用paperclip来处理我的Rails 4应用程序中的图像。这是我模型中的导入代码。你能告诉我下面的语法有什么问题 - 特别是URI解析代码吗?如果我从CSV文件中删除图像字段,则所有内容都会正确上传。

我希望rails从url获取jpg文件并将其保存在我们的服务器上。这是一个电子商务应用程序,所以我正在尝试为每个产品加载产品图像。

require 'csv'
require 'open-uri'

def self.import(file)
CSV.foreach(file.path, headers: true) do |row|


  listing_hash = {:name => row['Name'], :description => row['Description'], 
  :price => row['Price'], :image => URI.parse.row['Image'] }

  listing = Listing.where(id: listing_hash["id"])

  if listing.count == 1
    listing.first.update_attributes(listing_hash)
  else
    Listing.create!(listing_hash)
  end # end if !product.nil?
end # end CSV.foreach
end # end self.import(file)

1 个答案:

答案 0 :(得分:2)

这部分错了:

:image => URI.parse.row['Image']

您应该将row['Image']传递给parse方法,如下所示:

URI.parse(row['Image'])