Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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 Rails图像通过carrierwave和fog上传到S3_Ruby On Rails_Ruby_Amazon S3_Carrierwave_Fog - Fatal编程技术网

Ruby on rails Rails图像通过carrierwave和fog上传到S3

Ruby on rails Rails图像通过carrierwave和fog上传到S3,ruby-on-rails,ruby,amazon-s3,carrierwave,fog,Ruby On Rails,Ruby,Amazon S3,Carrierwave,Fog,您好,我一直在开发一个web应用程序,我想让用户可以上传个人资料图片。我花了很多时间试图让carrierwave和fog与s3一起工作,但没有成功完成。非常感谢你能给我的任何帮助 更新: 我一直试图摆弄它,从我能告诉你的是,这个文件永远不会上传,用户控制器中的:image值总是空的 我的上传类 class PhotoUploader < CarrierWave::Uploader::Base storage :fog def store_dir "uploads/#

您好,我一直在开发一个web应用程序,我想让用户可以上传个人资料图片。我花了很多时间试图让carrierwave和fog与s3一起工作,但没有成功完成。非常感谢你能给我的任何帮助

更新: 我一直试图摆弄它,从我能告诉你的是,这个文件永远不会上传,用户控制器中的:image值总是空的

我的上传类

class PhotoUploader < CarrierWave::Uploader::Base
   storage :fog
   def store_dir
      "uploads/#images/#{model.class.to_s.underscore}"
   end
end
用户模型

class User
  include Mongoid::Document
  ....
  has_one :photo
  ....
end
照片模型

class Photo
include Mongoid::Document
attr_accessible :name, :image

field :image, :type => String
field :name, :type => String

belongs_to :user

mount_uploader :image, PhotoUploader
 end
光控制器

  class PhotoController < ApplicationController

    def update
    @photo = Photo.find(params[:id])
      if @photo.update_attributes(params[:image]) 
        flash[:success] = "Your have updated your settings successfully."
      else
        flash[:error] = "Sorry! We are unable to update your settings. Please check your      fields and try again."
    end
    redirect_to(:back)
   end
这就是我所能想到的所有相关信息,如果有人需要我发布更多代码,我会很乐意。
老实说,我被难住了,任何帮助我都会得到感谢。

我想你在这方面有问题

if @photo.update_attributes(params[:image])
试试这样吧

if @photo.update_attributes(image: params[:photo][:image])

我设法为任何感兴趣的人解决了这个问题。事实上,我正在和我的用户一起使用Desive,为了让它正常工作,上传表单中需要一些不同的配置。这里是文档的链接,它帮助我解决了其他问题


日志中是否有错误?您可能将S3存储桶放在了错误的区域中?Christopher,S3存储桶放在了正确的区域中。凯尔,没有任何错误。该映像根本无法上载。您是否尝试过将调试器语句直接放在@photo=photo.find(params[:id])之后,然后从调试器启动irb并尝试手动执行此操作?你可能会这样发现问题。
if @photo.update_attributes(params[:image])
if @photo.update_attributes(image: params[:photo][:image])