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