我正在使用CarrierWave/RMagick上传/版本上传并在视图中显示它们。
我可以通过利用
def image?(new_file)
%w(jpg jpeg gif png).include?(new_file.extension)
end
version :thumb, :if => :image? do
process resize_to_fit: [100, 100]
end
在我看来,我已经开始使用复杂的if/else来利用MIME类型,但我注意到这是不可伸缩的,我不喜欢它有多脏。
作为一个例子
<% @workflow.attachments.each do |f| %>
<% if f.content_type.start_with?("image") %>
<%= image_tag f.thumb.url %>
<% elsif f.content_type.start_with?("application/zip") %>
Text File
<% end %>
<% end %>
有没有一种更健康的方法来做这件事?我目前有一个黑名单设置拒绝php/js等,我可以通过每个文件类型,我可以'假设'上传,但有一个主要的if/else在视图(特别是)感觉错了。