質問編集履歴
5
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
type: 'POST',
|
25
25
|
url: '/games',
|
26
26
|
data: data,
|
27
|
-
dataType: 'json' // サーバーから返却される型
|
27
|
+
dataType: 'json', // サーバーから返却される型
|
28
28
|
#このようにオプションをつけるとvoice以外の値も送れない
|
29
29
|
processData: false
|
30
30
|
}).done(function(result){
|
4
デバッグ結果を記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -60,6 +60,24 @@
|
|
60
60
|
at MediaRecorder.mediaRecorder.ondataavailable (game.js:86)
|
61
61
|
```
|
62
62
|
|
63
|
+
processData:falseを付けるとパラメータが渡せない
|
64
|
+
```
|
65
|
+
4: def new
|
66
|
+
5:
|
67
|
+
6: end
|
68
|
+
7:
|
69
|
+
8: def create
|
70
|
+
=> 9: binding.irb
|
71
|
+
10: @game=Game.new(
|
72
|
+
11: fast_talking_score:params[:fast_talking_score],
|
73
|
+
12: talking_time:params[:talking_time],
|
74
|
+
13: word_count:params[:word_count],
|
75
|
+
14: voice:params[:voice]
|
76
|
+
|
77
|
+
irb(#<GamesController:0x00007fad86d18b58>):001:0> params
|
78
|
+
=> <ActionController::Parameters {"object Object"=>nil, "controller"=>"games", "action"=>"create"} permitted: false>
|
79
|
+
irb(#<GamesController:0x00007fad86d18b58>):002:0>
|
80
|
+
```
|
63
81
|
リダイレクト先のviewでは以下のようにaudio要素で再生させたいです。
|
64
82
|
```
|
65
83
|
game.controller
|
3
ajax文の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -25,6 +25,8 @@
|
|
25
25
|
url: '/games',
|
26
26
|
data: data,
|
27
27
|
dataType: 'json' // サーバーから返却される型
|
28
|
+
#このようにオプションをつけるとvoice以外の値も送れない
|
29
|
+
processData: false
|
28
30
|
}).done(function(result){
|
29
31
|
if (result.redirect) {
|
30
32
|
window.location.href = result.redirect;
|
2
初心者マーク
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
```
|
19
|
-
mediaRecorder.ondataavailable = function (event)
|
19
|
+
mediaRecorder.ondataavailable = function (event){
|
20
20
|
var voice= event.data;
|
21
21
|
console.log(voice);
|
22
22
|
var data = { 'voice':voice, 'fast_talking_score': fast_talking_score,'word_count': word_count, 'talking_time': talking_time};
|
1
コントローラの記述を加えました
title
CHANGED
File without changes
|
body
CHANGED
@@ -58,15 +58,41 @@
|
|
58
58
|
at MediaRecorder.mediaRecorder.ondataavailable (game.js:86)
|
59
59
|
```
|
60
60
|
|
61
|
-
リダイレクト先のviewでは以下のようにaudio要素で再生させたいです
|
61
|
+
リダイレクト先のviewでは以下のようにaudio要素で再生させたいです。
|
62
62
|
```
|
63
|
+
game.controller
|
64
|
+
|
65
|
+
def create
|
66
|
+
|
67
|
+
@game=Game.new(
|
68
|
+
fast_talking_score:params[:fast_talking_score],
|
69
|
+
talking_time:params[:talking_time],
|
70
|
+
word_count:params[:word_count],
|
71
|
+
voice:params[:voice]
|
72
|
+
)
|
73
|
+
if @game.save
|
74
|
+
respond_to do |format|
|
75
|
+
format.json { render json: { redirect: result_game_url(@game) } }
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def result
|
81
|
+
|
82
|
+
@game= Game.find(params[:id])
|
83
|
+
#gonというgemでrails側からjavaスクリプトに変数を渡して使えるようにしています
|
84
|
+
gon.voice = @game.voice
|
85
|
+
end
|
86
|
+
|
87
|
+
```
|
88
|
+
```
|
63
89
|
result.html.erb
|
64
90
|
|
65
91
|
<audio id="audio" controls></audio>
|
66
92
|
|
67
93
|
<script>
|
68
94
|
post 送信で送られていた値を引数に入れて音声を再生させたい
|
69
|
-
document.getElementById("audio").src = window.URL.createObjectURL(voice)
|
95
|
+
document.getElementById("audio").src = window.URL.createObjectURL(gon.voice)
|
70
96
|
const audioElement = document.querySelector("audio");
|
71
97
|
</script>
|
72
98
|
```
|