2016-02-26 49 views
1

我嘗試在特定的導軌中創建音頻播放器新的簡單形式。用Rails最好的音頻上傳CRUD

只是一個簡短的信息我想發佈翻轉閃卡(其實我產生平假名)與音頻按鈕來聽音頻播放器的話。

我在問什麼是上傳音頻文件的最佳解決方案? 其實我試圖用Cloudinary視頻存儲服務來做到這一點。

我創建CarrierWave寶石聲音上傳這樣的:

# encoding: utf-8 

class SoundUploader < CarrierWave::Uploader::Base 
    include Cloudinary::CarrierWave 

    # Include RMagick or MiniMagick support: 
    # include CarrierWave::RMagick 
    # include CarrierWave::MiniMagick 

    # Choose what kind of storage to use for this uploader: 
    storage :file 
    # storage :fog 

    # Override the directory where uploaded files will be stored. 
    # This is a sensible default for uploaders that are meant to be mounted: 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    # Provide a default URL as a default if there hasn't been a file uploaded: 
    # def default_url 
    # # For Rails 3.1+ asset pipeline compatibility: 
    # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) 
    # 
    # "/images/fallback/" + [version_name, "default.png"].compact.join('_') 
    # end 

    # Process files as they are uploaded: 
    # process :scale => [200, 300] 
    # 
    # def scale(width, height) 
    # # do something 
    # end 

    # Create different versions of your uploaded files: 
    # version :thumb do 
    # process :resize_to_fit => [50, 50] 
    # end 

    # Add a white list of extensions which are allowed to be uploaded. 
    # For images you might use something like this: 
    # def extension_white_list 
    # %w(jpg jpeg gif png) 
    # end 

    # Override the filename of the uploaded files: 
    # Avoid using model.id or version_name here, see uploader/store.rb for details. 
    # def filename 
    # "something.jpg" if original_filename 
    # end 

end 

然後在我的模式我稱之爲MountUploader與此代碼(我所說的對象是聲音):

class Hiragana < ActiveRecord::Base 
    belongs_to :user 
    has_many :favs, dependent: :destroy 

    mount_uploader :upload, ImageUploader 

    mount_uploader :sound, SoundUploader 

end 

的上傳在視圖中創建

我的問題是如何調用上傳?我的意思是我把我的代碼放在這個變量@hiragana.sound,但你可以看看錯誤圖片[!

回答

1

他的意思是,你必須改變這一點:

# Choose what kind of storage to use for this uploader: 
    storage :file 
    # storage :fog 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

這樣:

# Choose what kind of storage to use for this uploader: 
    # storage :file 
    # storage :fog 

    # def store_dir 
    # "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    # end 
+1

謝謝@plombix我最後一次做到了,但我能做更多的事情來獲得正確的代碼,它有效嗎? –

1

我不知道我理解這裏的返回誤差,但請注意,如果您使用Cloudinary將圖像存儲在雲中,那麼你需要忽略(或意見)都storage :filestore_dir功能。 如果這仍然沒有幫助,請分享您的表格代碼。

+0

@ItayTarango請我在哪裏發表評論'存儲:file'和'在上傳文件中的store_dir function' ? –

+0

要麼從上傳器代碼中完全刪除這些行,要麼通過添加散列來註釋這些行,例如'#storage:file' –

+0

@ItayTarango請給我一個具體示例嗎? –