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

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

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

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

613閲覧

ajaxをrailsで取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 6

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2020/05/30 10:03

編集2020/05/30 10:05

railsとajaxの実装についての質問です。

クリックした番号が答えと一致していれば、/rankings、post=>rankings controllerのcreateアクションにparamsを送り、それをデータベースに保存したいのですが、うまく行かず困っています。

index.html.erb <li onclick="goAnswer(1, <%= f.answer %>)"><%= f.choice_1 %></li> function goAnswer(selectAnswerNo, correctAnswerNo) { if (selectAnswerNo == correctAnswerNo) { $.ajax({ type: "POST" url: "/rankings" data: {correct: 1}, dataType: "json" }) .done(function () { window.alert("success"); }), .fail(function () { window.alert("error"); }); }); } }; </script>
rankings controller  def create Ranking.create(correct:params[:correct]) end

どのようにすれば、railsでajaxdで送られたデータを取得できるでしょうか?
初心者のため、もはやどこが間違っているか分かリません。分かる方教えていただければ幸いです。

ちなみに
https://off.tokyo/blog/rails%E3%81%A7ajax%E3%81%A7post%E3%81%97%E3%81%A6db%E3%81%AB%E5%80%A4%E3%82%92%E4%BF%9D%E5%AD%98/

https://qiita.com/__tambo__/items/409ccf256e84017ea307

などを参考にして書いてみました。

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

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

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

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

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

Yasumichi

2020/05/30 13:30

> うまく行かず 具体的ではないのでエラーメッセージを提示してたください。
退会済みユーザー

退会済みユーザー

2020/05/31 00:33

エラーメッセージは何も表示されず、クリックをするとJavaScript は機能して正解、不正解は表示されるのですが、データベースには何も保存されていないのです、、、
guest

回答3

0

postの場合?は、以下のコードを追加する必要があるようでした!

beforeSend: function(xhr) { xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); },

これを追加するとsuccessしました。

投稿2020/05/31 02:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

function goAnswer(selectAnswerNo, correctAnswerNo) { if (selectAnswerNo == correctAnswerNo) { window.alert('正解!'); $.ajax({ type: "POST", url: "/rankings", // dataType: "json", data: { "correct": 1 }, success: function (data) { alert("success"); }, error: function (data) { alert("error"); } }); } else { window.alert('不正解!') }; } </script>

解決方法ではありませんが、コードを修正すると、ajaxは反応するようになったが、errorとalertされてしまう。
今後、なぜerrorとなるのか調べる必要があリます。

投稿2020/05/31 02:03

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

urlが複数形になっていますが、単数形ではないですか?

投稿2020/05/30 15:36

annaPanda

総合スコア130

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

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

退会済みユーザー

退会済みユーザー

2020/05/31 00:58

ありがとございます!確認してみましたが、/rankingsでよさそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問