Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 尝试使用ruby rake任务上载文件_Ruby On Rails 3_File Io_Spree_Rake Task - Fatal编程技术网

Ruby on rails 3 尝试使用ruby rake任务上载文件

Ruby on rails 3 尝试使用ruby rake任务上载文件,ruby-on-rails-3,file-io,spree,rake-task,Ruby On Rails 3,File Io,Spree,Rake Task,所以我在RubyonRails中使用Spree作为我的购物车。Spree是版本1-1-stable,Ruby是v1.9.3,RubyonRails是v3.2.3 我有一个远程主机,它有我想为我的Spree cart下载的图像。这是我用来拉它的代码。有些可能没有意义,因为我正在尽我所能让它工作,所以它可能需要一点清洁 # Add image to the product vendor_id = plink_and_pull(item, "VendorID") ima

所以我在RubyonRails中使用Spree作为我的购物车。Spree是版本1-1-stable,Ruby是v1.9.3,RubyonRails是v3.2.3

我有一个远程主机,它有我想为我的Spree cart下载的图像。这是我用来拉它的代码。有些可能没有意义,因为我正在尽我所能让它工作,所以它可能需要一点清洁

# Add image to the product
        vendor_id = plink_and_pull(item, "VendorID")
        image_name = plink_and_pull(item, "ImageName")
        # TODO: add if image exists to this unless
        unless image_name.nil? || vendor_id.nil? || plink_and_pull(item, "ImageFound").to_i == 0 || File.exists?("/public/prod_images/#{vendor_id}/#{image_name.gsub(' ', '%20')}")
            unless Dir.exists? "/public/prod_images/#{vendor_id}"
                Dir.mkdir("/public/prod_images/#{vendor_id}", 777)
            end
            file = File.new("public/prod_images/#{vendor_id}/#{image_name.gsub(' ', '%20')}", 'w+')
            file.binmode

            open(URI.parse("http://login.xolights.com/vendors/#{vendor_id}/large/#{image_name.gsub(' ', '%20')}")) do |data|
                file.write data.read
            end
            img = Spree::Image.create({:attachment => "public/prod_images/#{vendor_id}/#{image_name}",
                                      :viewable => product}, :without_protection => true)
        end
但是我得到的错误是“没有这样的文件或目录-/public/prod_images/29”,它引用了上面的“Dir.mkdir”行。但是,我手动创建了这个目录,试图让它工作。在我的exception rescue中,我打印了工作目录,这是我机器上应用程序的基本目录。(我正在本地主机atm上运行此操作。)


我在想也许我需要在routes.rb文件中做些什么?但我是RubyonRails路线的新手,不知道从哪里开始。。。即使这就是问题所在。

我对RubyMine不太熟悉。但请放心,这与路线无关。这不是Rails特有的。它是特定于Ruby(和OS)的,因为Dir.mkdir是标准Ruby库的一部分。只需从路径中删除前导/后导,然后查看它是否工作。(因此,实际路径将是{您的Rails应用程序的根目录}/public/prod_images

您是否创建了“/public/prod_images/”或“public/prod_images/”?(请注意,第一个路径位于根目录下,这不是一个好主意)对不起,我应该澄清一下:)我在创建目录之前(以及之后)遇到了这个错误,我只是想验证实际的文件上传是否正常,所以在RubyMine的GUI中,我右键单击并创建了/prod_images和/29.)我对鲁比明不太熟悉。但请放心,这与路线无关。这不是Rails特有的。它是特定于Ruby(和OS)的,因为Dir.mkdir是标准Ruby库的一部分。只需从路径中删除前导/后导,然后查看它是否工作。(因此,实际路径将是{YourRails应用程序的根目录}/public/prod_imagesHey您完全正确,但您将其作为注释,因此我无法将其作为正确答案!:(我还必须将777更改为0777,并且它现在运行得非常好!:DAdded作为答案。如果您觉得有用,请接受它:)