如何在回形针后处理器(ruby-on-rails)中包含if语句?

时间:2014-01-16 13:45:52

标签: ruby-on-rails paperclip

我在我的数据库中使用paperclip附加文件。我目前正在处理的模型需要能够使用图像和视频。我可以创建两个列:一个用于图像,一个用于视频,但我不愿意,因为如果它只是一个,它会变得更容易。我使用后处理器回形针功能创建每个图像的缩略图版本和大版本。问题在于,当我尝试放入视频时,我收到错误,因为视频显然不能像图像一样被格式化。

所以,我试图做的是在代码中加上if语句,这样它只会格式化图像,而不是视频格式。

这是我的代码:

has_attached_file :attachment, :styles => lambda { |a| { :thumbnail => (a.content_type.include? "image" ? "174X174>" : ""), :large => (a.content_type.include? "image" ? '470' : "") } }

当我尝试使用模型时(使用上面的代码时),这是我得到的错误:

TypeError in Media#index

can't dup FalseClass

以下是适用但仅适用于图像的代码:

has_attached_file :attachment, :url => "/system/:class/:attachment/:id/:style/:filename", :styles => { :thumbnail => '174X174>', :large => '470' }

这是我在使用上述代码时收到的错误:

Command :: identify -format %wx%h '/var/folders/it/itwSv-OMG0mneEX122X3I++++TY/-Tmp-/stream20140116-4704-1mlsrdy.mov[0]'
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError: /var/folders/it/itwSv-OMG0mneEX122X3I++++TY/-Tmp-/stream20140116-4704-1mlsrdy.mov is not recognized by the 'identify' command.>

如果这是一个比我想象的更复杂的问题,那么我可以创建第二列,但我不想,谢谢。

0 个答案:

没有答案