Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 回形针&x2B;S3=>;缺少url的一部分_Ruby On Rails_Ruby On Rails 4_Amazon S3 - Fatal编程技术网

Ruby on rails 回形针&x2B;S3=>;缺少url的一部分

Ruby on rails 回形针&x2B;S3=>;缺少url的一部分,ruby-on-rails,ruby-on-rails-4,amazon-s3,Ruby On Rails,Ruby On Rails 4,Amazon S3,正在开发一个允许使用回形针上传图片的API。一切正常(图片可以保存在S3上),但我无法在JSON中显示正确url的图片 型号: class Category < ActiveRecord::Base has_attached_file :picture, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: ":s3_eu_url" ... some validation

正在开发一个允许使用回形针上传图片的API。一切正常(图片可以保存在S3上),但我无法在JSON中显示正确url的图片

型号:

class Category < ActiveRecord::Base

  has_attached_file :picture,
    styles: { medium: "300x300>", thumb: "100x100>" },
    default_url: ":s3_eu_url"

    ...  some validations and accessors

end
class CategorySerializer < ActiveModel::Serializer
  attributes :id, :title, :picture
end
config.paperclip_defaults = {
  :storage => :s3,
  :s3_region => ENV['AWS_REGION'],
  :url => ':s3_domain_url',
  :s3_host_name => 's3-eu-west-1.amazonaws.com',
  :path => ':class/:attachment/:id_partition/:style/:filename',
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET'],
    :access_key_id => ENV['S3_ACCESS_KEY'],
    :secret_access_key => ENV['S3_SECRET_KEY']
  }
}
if Rails.env.production?
  Paperclip.interpolates(:s3_eu_url) do |att, style|
    "#{att.s3_protocol}://#{att.bucket_name}.s3-eu-west-1.amazonaws.com/#{att.path(style)}"
  end
end
回形针初始值设定项:

class Category < ActiveRecord::Base

  has_attached_file :picture,
    styles: { medium: "300x300>", thumb: "100x100>" },
    default_url: ":s3_eu_url"

    ...  some validations and accessors

end
class CategorySerializer < ActiveModel::Serializer
  attributes :id, :title, :picture
end
config.paperclip_defaults = {
  :storage => :s3,
  :s3_region => ENV['AWS_REGION'],
  :url => ':s3_domain_url',
  :s3_host_name => 's3-eu-west-1.amazonaws.com',
  :path => ':class/:attachment/:id_partition/:style/:filename',
  :s3_credentials => {
    :bucket => ENV['S3_BUCKET'],
    :access_key_id => ENV['S3_ACCESS_KEY'],
    :secret_access_key => ENV['S3_SECRET_KEY']
  }
}
if Rails.env.production?
  Paperclip.interpolates(:s3_eu_url) do |att, style|
    "#{att.s3_protocol}://#{att.bucket_name}.s3-eu-west-1.amazonaws.com/#{att.path(style)}"
  end
end
运行curl来写一篇文章,我得到了(正确的url):

在my JSON中显示的url:

"http://wetal-assets-bucket.s3-eu-west-1.amazonaws.com/"
图片的路径丢失,我找不到显示它的方法。 即使我创建了一个方法来在序列化程序中重新定义“:picture”,以便返回“object.picture.url”…结果仍然相同


有什么建议吗?

如果在rails控制台中调用
category.image.url
,url是正确的吗?它是不正确的……但我不明白为什么以及如何在我尝试在浏览器中访问它时,curl返回正确的url。