2016-08-14 8 views
0

UploaderはURLなしで保存しています。 Carrierwaveで画像を保存すると、アップロードされたアップローダーは保存されますが、URLは保存されません。

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 

マイコントローラ:私の Ticketモデルで

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 

私が持っている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 

M Y 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

trueconfig.fog_publicを変更してみてください。また、あなたのs3権限を確認してください。

関連する問題