Ruby on rails 回形针不';不显示默认图像的绝对url

Ruby on rails 回形针不';不显示默认图像的绝对url,ruby-on-rails,Ruby On Rails,当我用回形针上传图像时,我可以正确访问完整的url,如下所示: user = User.first user.avatar.url => "https://s3.us-east-2.amazonaws.com/mybucket/users/avatars/000/000/001/thumb/data?1494369889" 但是,当调用默认的_url时,它不会给出绝对路径: > user2 = User.new > user2.avatar.url => "/user

当我用回形针上传图像时,我可以正确访问完整的url,如下所示:

user = User.first
user.avatar.url
 => "https://s3.us-east-2.amazonaws.com/mybucket/users/avatars/000/000/001/thumb/data?1494369889"
但是,当调用默认的_url时,它不会给出绝对路径:

> user2 = User.new
> user2.avatar.url
=> "/users/avatars/missing_thumb.png" 
我的模型:

class User < ApplicationRecord    
  has_attached_file :avatar,
                    styles: { thumb: '100x100>',  square: '200x200#', medium: '300x300>' },
                    default_style: :thumb,
                    default_url: "/users/avatars/missing_:style.png"

我做错了什么?

我不认为你做错了什么。为什么这是一个问题?一个是绝对URL;另一个是相对URL。@TomLord我的应用程序是JSON API。我需要使用活动的\u model\u序列化程序将整个url与请求一起发送回去。我不知道这是否是“正确”的解决方案,但在序列化程序中使用
base\u url
方法进行修补将是微不足道的。@TomLord我不认为活动的\u model\u序列化程序应该对修补url做任何事情。它的工作是序列化属性及其值。就产生价值而言,我认为这是回形针的工作。不?Donato,我认为事实上是相反的:
url
返回相对url,而不是绝对url。有关使回形针使用绝对URL的讨论和可能的解决方案,请参阅。我不知道为什么你的第一个例子返回一个绝对路径。我不认为你做错了什么。为什么这是一个问题?一个是绝对URL;另一个是相对URL。@TomLord我的应用程序是JSON API。我需要使用活动的\u model\u序列化程序将整个url与请求一起发送回去。我不知道这是否是“正确”的解决方案,但在序列化程序中使用
base\u url
方法进行修补将是微不足道的。@TomLord我不认为活动的\u model\u序列化程序应该对修补url做任何事情。它的工作是序列化属性及其值。就产生价值而言,我认为这是回形针的工作。不?Donato,我认为事实上是相反的:
url
返回相对url,而不是绝对url。有关使回形针使用绝对URL的讨论和可能的解决方案,请参阅。我不知道为什么第一个示例返回绝对路径。
  config.paperclip_defaults = {
      s3_host_name: "s3.#{ENV.fetch('AWS_REGION')}.amazonaws.com",
      storage: :s3,
      s3_protocol: :https,
      s3_credentials: {
          s3_host_name: "s3.#{ENV.fetch('AWS_REGION')}.amazonaws.com",
          bucket: ENV.fetch('S3_BUCKET_NAME'),
          access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
          secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
          s3_region: ENV.fetch('AWS_REGION'),
      }
  }