Ruby on Rails において、データベースに登録した音声ファイル(バイナリデータ)の呼び出し方について質問です。
現在、データベースに音声ファイルを登録するところまではできるのですが、ビューファイルで、audio_tagを用いてプレーヤー形式で表示することができません。
controllerで、パスを取得するためのメソッドを定義のうえ、routesでアクションを定義、その後、ビューファイルで、<audio_tag (パス, :controls) %>と記述しているのですが、表示することができません。どのように記述すればよいか、ご教示頂けますと幸いです。
追記:コードは以下です!
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
[comic.rb]
class Comic < ActiveRecord::Base
has_many :pages
has_many :sounds
end
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
[sound.rb]
class Comic < ActiveRecord::Base
has_many :pages
has_many :sounds
end
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
[controller]
sound_forで、データベースのデータを送るよう定義。
class ComicsController < ApplicationController
def index
@comic = Comic.all
end
def show
@comic = Comic.find(params[:id])
@pages= Comic.find(params[:id]).pages
@s
end
def sound_for
@sound= Comic.find(params[:id]).sounds
send_data(@sound.upload_file)
end
end
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
[route]
Rails.application.routes.draw do
devise_for :users
resources :users
resources :comics, only: :show do
resources :sounds, only: [:new, :create]
member do
get 'sound_for'
end
end
root 'comics#index'
end
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
[view]
<h2>作品個別ページ</h2> <html> <img src="<%= @comic.image %>"> <p>作品名:<%= @comic.title %></p> <p>作者:<%= @comic.author %></p><a href="/comics/<%= @comic.id %>/sounds/new" target="_blank">音声を投稿する!</a>
<h2> みんなの投稿</h2><% @comic.sounds.each do |sound| %>
<p><%= sound.user.username %>さんの投稿</p><%= audio_tag sound_for_comic_path, :controls %>
<% end %>
<br /><% @pages.each do |page| %>
<img src="<%=page.image%>" width="700px"> <br/>
<% end %>
</html>>回答1件
あなたの回答
tips
プレビュー