質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

0回答

656閲覧

ajaxでのrailsとjavascriptのデータのやりとりがわかりません。。

wwwwvwww

総合スコア4

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2020/04/12 01:46

前提・実現したいこと

現在、一問一答アプリをrailsで作成しています。
”次の問題へ進む”というボタンを押すと、画面遷移せずに、
問題No、問題文、選択肢を変更したいと考えています。

そこでajaxを用いて実装中なのですが、
controllerに値を渡した後、
Javascript側への戻り値が想定通り出てこないです。

該当のソースコード

controller

1def index 2 if params[:count] == nil 3 @questions = Question.all 4 @questionsAmount = params[:questionsAmount] 5 @questions_samples = @questions.sample(@questionsAmount.to_i) 6 @count = 0 7 @answer = Correct.find_by(question_id:@questions_samples[0].id) 8 9 gon.count = @count 10 gon.questions_samples = @questions_samples 11 else 12 samples = params[:questions_samples] 13 count = params[:count] 14 questions = Question.all 15 sample_array = [] 16 17 samples.each {|key, value| 18 sample_id = value[:id] 19 sample_array << questions.find(sample_id) 20 } 21 22 @questions_samples = sample_array 23 @count = count.to_i 24 @answer = Correct.find_by(question_id:@questions_samples[@count]) 25 26 render json: @answer 27 28 29 30 end 31 32 33 end

Javascript

1$(function(){ 2 3 $(document).on('turbolinks:load', function(){ 4 $('#answer').click(function(){ 5 $('#answer-modal').fadeIn(); 6 }); 7 }); 8 9 $('#nextQuestion').click(function(){ 10 $('#answer-modal').fadeOut(); 11 gon.count += 1; 12 var num = gon.count + 1; 13 14 $.ajax({ 15 url: '/questions/index', 16 type: 'GET', 17 dataType: 'html', 18 async: true, 19 data: { 20 count: gon.count, 21 questions_samples :gon.questions_samples, 22 } 23 }).done(function(responce){ 24 $('#questionNo').html("No."+num); 25 $('#questionContents').html(gon.questions_samples[gon.count].contents); 26 $('#answer_a').html(responce.answer_a); 27 $('#answer_b').html(responce.answer_b); 28 }).fail(function(responce){ 29 console.log(responce); 30 }); 31 32 33 }); 34})

試したこと

controllerにて、renderでjavascriptへ返したのち、
javascriptでは、answer_aメソッド(選択肢aが格納されている)を用いて選択肢aを出力しようとした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/04/12 02:19

>戻り値が想定通り 「想定している結果」を具体的に記載してください。
wwwwvwww

2020/04/12 03:07

Correctモデルの選択肢を出力したいです。 CorrectモデルからQuestionモデルのidと一致するデータをひっぱてきて、それを@answerに格納し、javascriptで@answer選択肢を出力したいです。(answer_a,answer_bは選択肢のカラムです。)
hoshi-takanori

2020/04/12 09:25

とりあえず API を直接叩いて、想定している値が返ってくるか確認しましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問