Ruby on rails 回形针&x2B;S3=>;缺少url的一部分
正在开发一个允许使用回形针上传图片的API。一切正常(图片可以保存在S3上),但我无法在JSON中显示正确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
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。