2

我是回形针宝石的 n00b,所以请原谅,但我花了两个小时的大部分时间在这方面没有进展(我已经看过 railscast 了):

我的 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'在我的环境文件中指定,并不是说我认为在这种情况下应该有所作为。)

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

4

1 回答 1

5

阅读 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调用失败了,因为目标是一个空字符串或类似空字符串。

在您的控制器中,尝试打印params对象以查看params[:foo_bar][:mydocument]. 这可能会让你更接近根本问题。可能是问题的事情可能包括

  • 控制器和视图之间的不同属性名称
  • 控制器和模型之间的不同属性名称
  • 搞砸了form_tagform_for没有正确的编码集(尝试:html => {:multipart => true})。
于 2013-04-17T04:43:43.703 回答