gpt4 book ai didi

ruby-on-rails - 使用载波和雾将 Rails 图像上传到 S3

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:17 24 4
gpt4 key购买 nike

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

更新:我一直试图摆弄它,据我所知,该文件永远不会上传,用户 Controller 中的 :image 值始终为空。

我的上传类。

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

雾初始化器

CarrierWave.configure do |config| 
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => 'xxx',
:aws_secret_access_key => 'yyy',
}
config.fog_directory = 'pictures_dev'
config.fog_public = true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}
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

照片 Controller

  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

上传表格

= form_for @photo, :html => {:multipart => true} do |f|
%p
%label Photo
= image_tag(@user.image_url) if @photo.image?
= f.file_field :image
= f.submit

这就是我能想到的所有相关内容,如果有人需要我发布更多代码,我会很乐意。老实说,我很困惑,非常感谢任何帮助。

最佳答案

我设法为任何感兴趣的人解决了这个问题。事实上,我正在与我的用户一起使用设计,并且需要在上传表单中进行一些不同的配置才能使其正常工作。这是帮助我的文档的链接,以防其他人遇到问题。

https://github.com/jnicklas/carrierwave/wiki/How-to%3A-use-carrierwave-with-devise

关于ruby-on-rails - 使用载波和雾将 Rails 图像上传到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com