我想上傳用回形針javascript文件和歌廳回形針:沒有處理程序發現「應用程序/ 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 &回形針3.2.0
難道我handler
屬性與回形針相沖突?
有沒有人有任何見解我要去哪裏錯了?