我已将我的应用程序从 rails 2.3 迁移到 rails3,但我遇到了回形针问题。我看到在回形针 git 上有一个 rails3 的分支。
所以我在 Gemfile 中添加了“gem 'paperclip', :git => 'git://github.com/thoughtbot/paperclip.git', :branch => 'rails3'” 并启动命令包安装。
安装回形针后,上传工作正常,但样式不行。我看到了一个 hack 来修复它。
# in lib/paperclip/attachment.rb at line 293
def callback which #:nodoc:
# replace this line...
# instance.run_callbacks(which, @queued_for_write){|result,obj| result == false }
# with this:
instance.run_callbacks(which, @queued_for_write)
end
之后样式还可以,但我无法激活处理器。我的代码是:
has_attached_file :image,
:default_url => "/images/nopicture.jpg",
:styles => { :large => "800x600>",
:cropped => Proc.new { |instance| "#{instance.width}x#{instance.height}>" },
:crop => "300x300>" },
:processors => [:cropper]
我的处理器位于 RAILS_APP/lib/paperclip_processors/cropper.rb 并包含:
module Paperclip
class Cropper < Thumbnail
def transformation_command
if crop_command and !skip_crop?
crop_command + super.sub(/ -crop \S+/, '')
else
super
end
end
def crop_command
target = @attachment.instance
trans = "";
trans << " -crop #{target.crop_w}x#{target.crop_h}+#{target.crop_x}+#{target.crop_y}" if target.cropping?
trans << " -resize \"#{target.width}x#{target.height}\""
trans
end
def skip_crop?
["800x600>", "300x300>"].include?(@target_geometry.to_s)
end
end
end
我的问题是我收到此错误消息:未初始化的常量 Paperclip::Cropper 未加载裁剪的处理器。
有人有办法解决这个问题吗?
有关信息,我的应用程序在 rails 2.3.4 上运行良好。