我正在尝试使用回形针上传 javascript 文件并获取
No handler found for "application/javascript"
.../paperclip-3.2.0/lib/paperclip/io_adapters/registry.rb:19:in `handler_for'
.../paperclip-3.2.0/lib/paperclip/io_adapters/registry.rb:29:in `for'
.../paperclip-3.2.0/lib/paperclip/attachment.rb:91:in `assign'
.../paperclip-3.2.0/lib/paperclip.rb:196:in `block in has_attached_file'
我将其用作模板系统的一部分。作为我的seed.rb的一部分(所以我不是通过表单上传)我遍历目录中的文件,为每个文件创建一个新的Javascript对象,设置'path','extension'和'body'然后回调在验证之前设置名为“source”的回形针附件,并在保存后设置另一个名为“preview”的附件。错误发生compile_preview
在self.preview = file
模型/javascript.rb
has_attached_file :source,
:default_style => :original,
:path => ":rails_root/tmp/:configured_path",
:url => ":configured_url",
:default_url => "/assets/missing.gif",
:use_timestamp => false,
:storage => :filesystem
before_validation :set_source
before_post_process { false }
after_save :compile_preview
validates :body, :presence => true,
:length => { :maximum => 500.kilobytes }
validates :path, :presence => true
validates :format, :presence => true,
:inclusion => ["js"]
validates :handler, :presence => true,
:inclusion => ["coffee", "js"]
def set_source
file = StringIO.new(self.body)
file.class.class_eval { attr_accessor :original_filename, :content_type }
file.original_filename = "#{File.basename(self.path)}.#{self.extension}"
file.content_type = "application/javascript"
self.source = file
end
def compile_preview
file = StringIO.new(self.render)
file.class.class_eval { attr_accessor :original_filename, :content_type }
file.original_filename = self.source_file_name
file.content_type = self.source_content_type
self.preview = file
self.save
end
我知道这 99% 都有效,因为我已经将它与另一个模型一起使用,但它只是导致问题的“应用程序/javascript”。我也尝试过“text/plain”和旧的“text/javascript”mime 类型,但得到了同样的错误。
我之前没有看到任何人以这种方式与处理程序有问题,而回形针也没有提到它。
我正在使用 Rails 3.2.8 和 Paperclip 3.2.0
我的handler
属性可能与回形针冲突吗?
有没有人知道我在哪里出错了?