代码之家  ›  专栏  ›  技术社区  ›  Arkan

栏杆和回形针

  •  8
  • Arkan  · 技术社区  · 14 年前

    我已经将我的应用程序从Rails2.3迁移到rails3,我的回形针有问题。 我看到回形针上有一根用来装栏杆的树枝。

    一旦安装了回形针,上传效果就很好了,但不是样式。我看见一个黑客在修理它。

    # 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]
    

    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
    

    我的问题是,我得到了这个错误消息:未初始化的常量回形针::Cropper

    有人有办法解决这个问题吗?

    我的应用程序在Rails2.3.4上运行良好。

    7 回复  |  直到 14 年前
        1
  •  5
  •   Ferdy    14 年前

    我也有同样的问题。似乎曲别针处理器没有载入Rails3。直到有人修复了它,我才把cropper.rb文件移到/config/initializers中

        2
  •  2
  •   tomi    14 年前

    重新启动服务器,对我有用:)

        3
  •  1
  •   panning    14 年前

    但您可以将cropper.rb移动到曲别针库目录,并添加require'paperclip/croper.rb'。它对我有用,但我使用捆绑机,所以它看起来很难看。。。

        4
  •  1
  •   horseshoe7    13 年前

    在Photo.rb类中,或者您以前使用的任何一个需要“…/croper.rb”的类中,您也必须将项目的根放在路径中:

    require "#{config.root}/lib/paperclip_processors/cropper.rb" # required to make cropping work.
    

        5
  •  0
  •   Flov    14 年前

    是的,安装曲别针作为插件,它会工作

        6
  •  0
  •   utiq    13 年前

    我建议你用卡里瓦夫代替回形针,这样既快捷又方便 https://github.com/jnicklas/carrierwave

        7
  •  0
  •   Minver    13 年前

    我也有同样的问题。我正在使用这个存储库中的回形针宝石:

    gem "paperclip", :git => "git://github.com/JasonKing/paperclip.git", :branch => "rails3"
    

    我还得到了“未初始化的常量回形针::裁剪器”。重新启动服务器失败!