teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

文法の修正

2021/12/26 20:38

投稿

atyabo
atyabo

スコア34

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

デバッグ結果を記載

2021/12/26 20:38

投稿

atyabo
atyabo

スコア34

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文の修正

2021/12/26 20:37

投稿

atyabo
atyabo

スコア34

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

初心者マーク

2021/12/26 20:30

投稿

atyabo
atyabo

スコア34

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

コントローラの記述を加えました

2021/12/26 18:03

投稿

atyabo
atyabo

スコア34

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
  ```