我知道在打开文件而不关闭文件时会出现“打开的文件过多”错误,但尽管这样做(我认为)我仍然收到此错误:
remote_photos_list do |remote_path|
Net::FTP.open(ip, username, password) do |ftp|
tmp_path = File.join('tmp/images', File.basename(remote_path))
ftp.getbinaryfile(remote_path, tmp_path)
File.open(tmp_path, 'r') do |file|
listing.photos.create(:image => file)
end
File.delete(tmp_path)
end
end
错误发生在listing.photos.create(:image => file)
第一次迭代的行。
我尝试以相反的顺序嵌套最外层的块,改为通过 HTTP 下载,然后重新启动我的机器(这是在本地发生的),但都无济于事。从我在 StackExchange 和 Google 上看到的情况来看,这似乎应该是一个非常简单的问题,但我就是无法摆脱这个错误。
这发生在 Mac OS X 上的本地 Rails 3.2.13 服务器上,并且是模型listing
的一个实例,其中有一个名为 的回形针附件,如果有帮助的话。Listing
has_many :photos
Photo
image
我也不知道是否tmp_file
需要生成;如果有办法解决这个问题,请告诉我,因为它可能会有所帮助。
再次,如果这是一个愚蠢的问题,我很抱歉,但我非常感谢任何帮助!