Paperclip文件为空时获取路径

时间:2014-07-30 01:09:36

标签: ruby-on-rails amazon-s3 paperclip

在保存文件之前有没有办法获取Paperclip文件的路径?

例如,

Person.rb

class Person < ActiveRecord::Base
  has_attached_file :photo_file
end
某些.rb 中的

p = Person.new
p.photo_file.path

返回nil。
但我想得到道路。

因为我想获取直接上传到S3的网址。

class Person < ActiveRecord::Base
  def s3_put_url(path)
  s3 = AWS::S3.new(
    access_key_id: ENV['AWS_ACCESS_KEY_ID'],
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
  )
  bucket_name = ENV['AWS_BUCKET']
  bucket = s3.buckets[bucket_name]

  path.slice!(0,1) if path[0] == '/'    
  object = bucket.objects[path]

  @s3url = object.url_for(:put, { :expires => 10*60 }).to_s
end

我在Person模型中有这样的方法, 但是当photo_file为空时,我无法获取Paperclip文件的路径。 任何建议将不胜感激。 谢谢!

0 个答案:

没有答案