Ruby on rails 使用carrierwave上载音频文件
我在上传carrierwave gem的音频时遇到问题,当我发布音频文件时,所有显示的都是音频url链接。第一次使用gem,不确定我是否正确使用carrierwave。只是尝试在显示页面上显示音频文件Ruby on rails 使用carrierwave上载音频文件,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在上传carrierwave gem的音频时遇到问题,当我发布音频文件时,所有显示的都是音频url链接。第一次使用gem,不确定我是否正确使用carrierwave。只是尝试在显示页面上显示音频文件 class AudioUploader < CarrierWave::Uploader::Base # Include RMagick or MiniMagick support: # include CarrierWave::RMagick # include Carri
class AudioUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
# include CarrierWave::MiniMagick
storage :file
include CarrierWave::Audio
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
音乐控制器
class MusicsController < ApplicationController
before_action :set_music, only: [:show, :edit, :update, :destroy]
# GET /musics
# GET /musics.json
def index
@musics = Music.all
end
# GET /musics/1
# GET /musics/1.json
def show
end
# GET /musics/new
def new
@music = Music.new
end
# GET /musics/1/edit
def edit
end
# POST /musics
# POST /musics.json
def create
@music = Music.new(music_params)
respond_to do |format|
if @music.save
format.html { redirect_to @music, notice: 'Music was successfully created.' }
format.json { render :show, status: :created, location: @music }
else
format.html { render :new }
format.json { render json: @music.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /musics/1
# PATCH/PUT /musics/1.json
def update
respond_to do |format|
if @music.update(music_params)
format.html { redirect_to @music, notice: 'Music was successfully updated.' }
format.json { render :show, status: :ok, location: @music }
else
format.html { render :edit }
format.json { render json: @music.errors, status: :unprocessable_entity }
end
end
end
# DELETE /musics/1
# DELETE /musics/1.json
def destroy
@music.destroy
respond_to do |format|
format.html { redirect_to musics_url, notice: 'Music was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_music
@music = Music.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def music_params
params.require(:music).permit(:title, :audio)
end
end
class MusicsController
将url放入
标记中如何?这将是
@maxpleaner刚刚尝试了它创建的音频文件,但只有3秒钟,没有声音playing@maxpleaner好的,我刚刚上传了另一个音频文件,它可以正常工作。谢谢,@jmike和maxpleaner,我在rails项目中实现了这个功能,有了您的问题的帮助:)这不应该被标记为已回答吗?
class Music < ApplicationRecord
mount_uploader :audio, AudioUploader
end
ActiveRecord::Schema.define(version: 20170606155943) do
create_table "musics", force: :cascade do |t|
t.string "title"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "audio"
end
end
class MusicsController < ApplicationController
before_action :set_music, only: [:show, :edit, :update, :destroy]
# GET /musics
# GET /musics.json
def index
@musics = Music.all
end
# GET /musics/1
# GET /musics/1.json
def show
end
# GET /musics/new
def new
@music = Music.new
end
# GET /musics/1/edit
def edit
end
# POST /musics
# POST /musics.json
def create
@music = Music.new(music_params)
respond_to do |format|
if @music.save
format.html { redirect_to @music, notice: 'Music was successfully created.' }
format.json { render :show, status: :created, location: @music }
else
format.html { render :new }
format.json { render json: @music.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /musics/1
# PATCH/PUT /musics/1.json
def update
respond_to do |format|
if @music.update(music_params)
format.html { redirect_to @music, notice: 'Music was successfully updated.' }
format.json { render :show, status: :ok, location: @music }
else
format.html { render :edit }
format.json { render json: @music.errors, status: :unprocessable_entity }
end
end
end
# DELETE /musics/1
# DELETE /musics/1.json
def destroy
@music.destroy
respond_to do |format|
format.html { redirect_to musics_url, notice: 'Music was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_music
@music = Music.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def music_params
params.require(:music).permit(:title, :audio)
end
end