【问题标题】:Why isn't paperclip post processing working?为什么回形针后处理不起作用?
【发布时间】:2011-07-13 18:39:11
【问题描述】:

您好,我一直在寻找各种关于回形针后期处理的教程,但不知何故我无法调用“Make”方法。

在这里查看第 36 行...http://pastie.org/private/epfgcxywhyh4wpmozypg

它正常上传,没有任何错误或警告,但我永远看不到 make 方法中的 puts 语句,它告诉我这没有被调用。

编辑

我可以毫无问题地在模型中运行它,我得到了 True,

def class_exists?(class_name)
   klass = Paperclip.const_get(class_name)
   return klass.is_a?(Class)
rescue NameError
   return false
end

有什么想法吗?

【问题讨论】:

  • 您确定正在加载 FileContents 类吗?
  • 这就是我试图用第 36 行的 puts 验证的内容,我也尝试添加一个调试器(ruby-debug),但它从未被调用,因此我想知道为什么它没有被调用调用。还有其他方法可以验证 FileContents 类是否正在加载?
  • 尝试在文件的第一行引发异常(raise 'here')。这至少会验证文件是否正在加载,我认为这是一个很好的起点。

标签: ruby-on-rails paperclip post-processing


【解决方案1】:

两天前我遇到了同样的问题。这是我为使其工作所做的工作:

转到命令提示符并键入:“which convert”命令。这是 ImageMagick 命令,所以如果它说 /usr/bin/convert 然后尝试添加

Paperclip.options[:command_path] = "/usr/bin"

在您的 config/environments/development.rb 中。从那里得到的内容中删除 /convert 。

然后将您的文件名称 file_contents.rb 更改为 paperclip_postprocess.rb 并将其放入目录:RAILS_ROOT/config/initializers/paperclip_postprocess.rb强>

您可以通过在模型中添加以下行来交叉检查您的附件是否正在处理:

   before_post_process :before_post_process
   after_post_process :after_post_process

   def before_post_process
        puts "===========Before processing attachment==========="
   end

   def after_post_process
        puts "-----------After processign attachment------------"
   end

看看here

至少对我有用。

【讨论】:

    【解决方案2】:

    我在 Paperclip README 中注意到了这一行:

    注意:由于处理器通过将原始附件转换为样式进行操作,因此如果没有定义样式,则不会运行任何处理器。

    查看您的粘贴,您定义了除 :style 参数之外的所有内容,所以也许这就是问题所在?

    【讨论】:

    • 是的,我尝试添加 :styles => { :chaff => [] } 但同样的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多