Paperclip :: AdapterRegistry :: NoHandlerError(找不到“”的处理程序)

时间:2013-04-16 22:38:28

标签: ruby-on-rails paperclip

我是回形针宝石的n00b,所以请原谅我,但我花了两个小时的时间没有进展(我已经看过轨道广播了):

我的Rails应用程序有一个带回形针附件的模型:

class Foo::Bar < ActiveRecord::Base
  attr_protected  :id
  has_attached_file :mydocument
end

每当我尝试为此附件提交带有空白文件字段的表单时,我都会收到以下错误:

Paperclip::AdapterRegistry::NoHandlerError: No handler found for ""

我该怎么办? (我在我的环境文件中安装了ImageMagick并指定了Paperclip.options[:command_path] = 'C:\Program Files\ImageMagick-6.8.4-Q16',而不是我认为在这种情况下应该有所不同。)

我已经卸载并重新安装了回形针。我重新启动了电脑。我在同事的计算机上运行了应用程序,没有得到错误。但是在我的机器上,我仍然得到错误。

1 个答案:

答案 0 :(得分:4)

阅读Paperclip源后,看起来您在呼叫追踪中遇到错误:

Foo::Bar.mydocument = document
# calls
Foo::Bar.attachment_for(:mydocument).assign(document)
# calls
file = Paperclip.io_adapters.for(document)
# calls
handler_for(document).new(document)

看起来handler_for调用失败了,因为target是一个空字符串或类似于空字符串。

在控制器中,尝试打印params对象以查看params[:foo_bar][:mydocument]中的内容。这可能会使您更接近根本问题。可能出现问题的可能包括

  • 控制器和视图之间的不同属性名称
  • 控制器和型号之间的不同属性名称
  • 没有正确编码集的混乱form_tagform_for(尝试:html => {:multipart => true})。