上传者正在保存,没有网址。
t = Ticket.last
=> #<Ticket id: 14, user_id: 14, name: nil, latitude: #<BigDecimal:7fe4f84fb9d0,'0.297608026E2',18(18)>, longitude: #<BigDecimal:7fe4f84fb890,'-0.953695062E2',18(18)>, created_at: "2016-08-14 01:15:06", updated_at: "2016-08-14 01:15:06", photo: nil>
irb(main):002:0> t.photo
=> #<PhotoUploader:0x007fe4f84f8168 @model=#<Ticket id: 14, user_id: 14, name: nil, latitude: #<BigDecimal:7fe4f84fb9d0,'0.297608026E2',18(18)>, longitude: #<BigDecimal:7fe4f84fb890,'-0.953695062E2',18(18)>, created_at: "2016-08-14 01:15:06", updated_at: "2016-08-14 01:15:06", photo: nil>, @mounted_as=:photo>
irb(main):003:0> t.photo.url
=> nil
我的控制器:
class RegistrationsController < ApplicationController
skip_before_filter :verify_authenticity_token
def create
@user = User.new(user_params)
if @user.save
puts "Saved the user"
@ticket = Ticket.new(ticket_parameters)
image_data = params[:ticket][:photo]
puts "image_data #{image_data}"
# @ticket.photo = image_data
puts "MY TICKET PHOTO: #{@ticket.photo}"
@ticket.save
private
def user_params
params.require(:user).permit!
end
def ticket_parameters
params.require(:ticket).permit!
end
在我的Ticket
模型中
mount_uploader :photo, PhotoUploader
我的上传者:
class PhotoUploader < CarrierWave::Uploader::Base
storage :fog
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(jpg jpeg gif png)
end
end
我的carrierwave初始化程序:
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS', # required
aws_access_key_id: ENV['AWS_ID'], # required
aws_secret_access_key: ENV['AWS_SECRET'], # required
}
config.fog_directory = 'handled-tickets' # required
config.fog_public = false # optional, defaults to true
end
答案 0 :(得分:0)
尝试将config.fog_public
更改为true
。另外,请检查您的s3权限。