Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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 回形针因缩略图而裁剪原始图像_Ruby On Rails_Ruby_Paperclip - Fatal编程技术网

Ruby on rails 回形针因缩略图而裁剪原始图像

Ruby on rails 回形针因缩略图而裁剪原始图像,ruby-on-rails,ruby,paperclip,Ruby On Rails,Ruby,Paperclip,所以我要做的是为缩略图制作一个中央裁剪的图像,然后原始图像保持不变,这样我可以点击缩略图,让用户看到原始图像 因此,在我的模型中,我有: has_attached_file :image, default_url: "/assets/missing.png", url: "s3_domain_url", storage: :s3, s3_credentials: "#{Rails.root}/config/aws-#{Rails.env}.yml", s3_permissio

所以我要做的是为缩略图制作一个中央裁剪的图像,然后原始图像保持不变,这样我可以点击缩略图,让用户看到原始图像

因此,在我的模型中,我有:

has_attached_file :image,
  default_url: "/assets/missing.png",
  url: "s3_domain_url",
  storage: :s3,
  s3_credentials: "#{Rails.root}/config/aws-#{Rails.env}.yml",
  s3_permissions: 'authenticated-read',
  path: "/users/:id/images/:basename.:extension",
  s3_server_side_encryption: :aes256,
  styles: { thumb: "200x200#" }

def s3_url(style = nil, expires_in = 30.seconds)
  if image.exists?
    image.s3_object(style).url_for(:read, :secure => true, :expires => expires_in).to_s
  else
    "/assets/missing.png"
  end
end

validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
然后在我的HTML中我得到:

这应该允许用户单击缩略图,然后将其带到原始图像。但目前它有正确的裁剪缩略图,当用户单击它时,它会将用户带到裁剪缩略图的更大版本,而不是原始图像

有什么方法可以实现我想要的吗?

问题与基本相同,需要在路径中添加
:style
。现在它工作正常了

所以现在看起来像:

has_attached_file :image,
  default_url: "/assets/missing.png",
  url: "s3_domain_url",
  storage: :s3,
  s3_credentials: "#{Rails.root}/config/aws-#{Rails.env}.yml",
  s3_permissions: 'authenticated-read',
  path: "/users/:id/images/:style/:basename.:extension",
  s3_server_side_encryption: :aes256,
  styles: { thumb: "200x200#" }

如果你试试
@challenge.s3_url
?@MichalSzyndel,我也这么做了,基本上和@challenge.s3_url(:original)是一样的。它仍然像一个大拇指一样被裁剪,而我想要的是真实的原始图像。