我们有一个使用Paperclip(4.2.0)附加头像的AR模型。我们希望允许用户旋转此图像,但我在使其工作时遇到了很多困难。我的代码如下:
module Paperclip
class Rotator < Thumbnail
def initialize(file, options = {}, attachment = nil)
options[:auto_orient] = false
super
end
def transformation_command
if rotate_command
"#{rotate_command} #{super.join(' ')}"
else
super
end
end
def rotate_command
target = @attachment.instance
if target.rotation.present?
" -rotate #{target.rotation}"
end
end
end
end
class User < ActiveRecord::Base
has_attached_file :avatar, {
styles: {
small: ['72x72#', :png]
},
processors: [:rotator]
}
attr_accessor :rotate
end
我正试图通过以下方式旋转图像:
user.rotate = 90
user.avatar.reprocess!
我可以看到-rotate 90选项被传递给转换,但它没有做任何事情。有没有人设法使用回形针让这个工作?
答案 0 :(得分:1)
将target.rotation
替换为target.rotate
,并为rotate_method
添加一个尾随空格为我做了诀窍。
module Paperclip
class Rotator < Thumbnail
def transformation_command
if rotate_command
rotate_command + super.join(' ')
else
super
end
end
def rotate_command
target = @attachment.instance
if target.rotate.present?
" -rotate #{target.rotate} "
end
end
end
end
class User < ActiveRecord::Base
has_attached_file :avatar, {
styles: {
small: ['72x72#', :png]
},
processors: [:rotator]
}
attr_accessor :rotate
end