如何接受/上传模型中的音频文件作为Ruby on Rails的附件?

时间:2015-11-19 17:38:49

标签: ruby-on-rails ruby audio

我创建了一个名为PenUp的模型。我的PenUp模型附加了图像文件,validates图像的attachment content type。我现在希望我的模型能够附加音频文件和音频文件内容类型。

我不确定是否应该为音频文件创建名为Audio的模型,或者我应该将其附加到PenUp模型,就像附加图像一样。

我使用paperclip gem附加文件。我基本上希望能够将音频文件上传到我的应用程序。我不确定哪些内容类型可供使用,以及如何在我的PenUp模型中使用它。

我如何能够附加音频文件并验证内容类型?

这是我的模特:pen_up.rb

 class PenUp < ActiveRecord::Base
        belongs_to :user
        has_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }
        validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
        validates :image, presence: true
      validates :description, presence: true
    end

提前致谢!

1 个答案:

答案 0 :(得分:1)

第一个问题我不确定是否应该为音频文件创建名为Audio的模型,或者我应该将其附加到PenUp模型,就像附加图像一样

我认为这取决于你的意图,如果PenUp应该保存图像文件和音频文件,那么你应该将音频文件附加到PenUp模型。

第二个问题我如何能够附加音频文件并验证内容类型?

你在这里:

class PenUp < ActiveRecord::Base
  ...
  has_attached_file :audio
  validates :audio, presence: true
  validates_attachment_content_type :audio, :content_type => [ 'audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/mpeg3', 'audio/x-mpeg3', 'audio/mpg', 'audio/x-mpg', 'audio/x-mpegaudio' ]
end

根据您想要的音频文件格式,您可以在content_type阵列上添加更多内容或删除内容类型。