Ruby on rails 如何检查扩展类型,然后将其保存在正确的位置

Ruby on rails 如何检查扩展类型,然后将其保存在正确的位置,ruby-on-rails,mongoid,feedjira,Ruby On Rails,Mongoid,Feedjira,我有带图片和视频的模型 如何检查存储模块类型,然后保存到正确的位置 feed_entry.rb class FeedEntry include Mongoid::Document field :enclosure_url, type: String field :enclosure_type, type: String field :video, type: String mount_uploader :picture, PictureUploader end 例如: f

我有带图片和视频的模型

如何检查
存储模块类型
,然后保存到正确的位置

feed_entry.rb

class FeedEntry
  include Mongoid::Document

  field :enclosure_url, type: String
  field :enclosure_type, type: String
  field :video, type: String
  mount_uploader :picture, PictureUploader
end
例如:

feed = Feedjira::Feed.fetch_and_parse 'http://example.com/feed.xml'

feed.entries.first.enclosure_url # => "http://example.com/d260eb5c"
feed.entries.first.enclosure_type # => "image/jpeg"

feed.entries.last.enclosure_url # => 'https://youtu.be/AnXR-MKhg64'
feed.entries.last.enclosure_type # => "video/x-ms-asf"

这是我在控制器中所做的事情,但让我向你们展示我所做的

class FilesController < ApplicationController

  def create 
    ...
    feed_entry.save
    if params[:file].content_type == 'image/jpeg'
      feed_entry.save_image
      # save file at images location
    elsif params[:file].content_type == 'video/x-ms-asf'
      feed_entry.save_video
      # save file at video location
    else
      # Dont know how to process file
    end
    ...
  end
end
class filecontroller
虽然此代码可以回答问题,但提供有关此代码回答问题的原因和/或方式的其他上下文可以提高其长期价值。
before_save  :save_uri

def media_type
    if self.enclosure_type =~ /image\//
      self.remote_picture_url = self.enclosure_url
    elsif self.enclosure_type =~ /video\//
      self.video = self.enclosure_url
    else
      self.video = self.enclosure_url
    end
  end