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

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

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

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

解決済

JavaScriptがHTMLファイルに反映されない

moto12
moto12

総合スコア15

Ruby on Rails

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

2回答

0評価

1クリップ

1086閲覧

投稿2020/11/18 08:29

編集2020/11/18 10:17

前提・実現したいこと

HTMLのファイルにJavaScriptを反映させたい

同じような問題を抱えている人は多いようですが、異なる解決策の情報が多すぎて、どれを参考にしていいのか分からない状況です...

発生している問題・エラーメッセージ

GET http://localhost:3000/javascript/question.js net::ERR_ABORTED 404 (Not Found) questions:52

該当のソースコード

JavaScript

【question.js】 const quiz = [ { question: 'What do you like to do?', answers: [ 'I play soccer.', 'I really like to play tennis', 'I love it', 'Thanks'], correct: 'I really like to play tennis' }, { question: 'What did you eat for breakfast this morning?', answers: [ 'I love to eat', 'I am eating a banana', 'I ate an apple', 'I was eat sushi'], correct: 'I ate an apple' }, { question: 'Are you happy to come here?', answers: [ 'Why not ??', 'No, I am', 'I am here', 'You are happy'], correct: 'Why not ??' }, { question: 'What are you doing now?', answers: [ 'I was eating dinner', 'I eating an apple', 'I love to eat chocolate', 'I am having a toast for lunch'], correct: 'I am having a toast for lunch' } ]; const $window = window; const $doc = document; const $question = $doc.getElementById('js-question'); const $buttons = $doc.querySelectorAll('.btn'); const quizLen = quiz.length; let quizCount = 0; let score = 0; const init = () => { $question.textContent = quiz[quizCount].question; const buttonLen = $buttons.length; let btnIndex = 0; while(btnIndex < buttonLen){ $buttons[btnIndex].textContent = quiz[quizCount].answers[btnIndex]; btnIndex++; } }; const goToNext = () => { quizCount++; if(quizCount < quizLen){ init(quizCount); } else { // $window.alert('クイズ終了!'); showEnd(); } }; const judge = (elm) => { if(elm.textContent === quiz[quizCount].correct){ $window.alert('正解!'); score++; } else { $window.alert('不正解!'); } goToNext(); }; const showEnd = () => { $question.textContent = '終了!あなたのスコアは' + score + '/' + quizLen + 'です'; const $items = $doc.getElementById('js-items'); $items.style.visibility = 'hidden'; }; init(); let answersIndex = 0; let answersLen = quiz[quizCount].answers.length; while(answersIndex < answersLen){ $buttons[answersIndex].addEventListener('click', (e) => { judge(e.target); }); answersIndex++; }

HTML

【JavaScriptを反映させたいHTMLファイル】 <div class="container"> <div class="jumbotron mt-5"> <div class="d-flex justify-content-center"> <div id="js-question" class="alert alert-primary" role="alert"> A simple primary alert—check it out! </div> </div> <div id="js-items" class="d-flex justify-content-center"> <div class="m-2"> <button type="button" id="js-btn-1" class="btn btn-primary">Primary</button> </div> <div class="m-2"> <button type="button" id="js-btn-2" class="btn btn-primary">Primary</button> </div> <div class="m-2"> <button type="button" id="js-btn-3" class="btn btn-primary">Primary</button> </div> <div class="m-2"> <button type="button" id="js-btn-4" class="btn btn-primary">Primary</button> </div> </div> </div> </div> <script src="../javascript/question.js"></script>

JavaScript

【application.js】 require("@rails/ujs").start() // require("turbolinks").start() require("@rails/activestorage").start() require("channels") require("../good_answer") //= require jquery //= require_tree .

HTML

【application.html.erb】 <!DOCTYPE html> <html> <head> <title>RECTURE</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css"> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <script src="https://kit.fontawesome.com/4fa5451ade.js" crossorigin="anonymous"></script> </head> <%= yield %> </body> </html>

【ディレクトリとファイルの構造】
イメージ説明

11/18(水) 18:39 更新

JavaScript

【現在のエラー文】 questions:1 GET http://localhost:3000/questions 500 (Internal Server Error)

JavaScript

【index.html.erb】←JSを反映させたいファイル <div class="container"> <div class="jumbotron mt-5"> <div class="d-flex justify-content-center"> <div id="js-question" class="alert alert-primary" role="alert"> A simple primary alert—check it out! </div> </div> <div id="js-items" class="d-flex justify-content-center"> <div class="m-2"> <button type="button" id="js-btn-1" class="btn btn-primary">Primary</button> </div> <div class="m-2"> <button type="button" id="js-btn-2" class="btn btn-primary">Primary</button> </div> <div class="m-2"> <button type="button" id="js-btn-3" class="btn btn-primary">Primary</button> </div> <div class="m-2"> <button type="button" id="js-btn-4" class="btn btn-primary">Primary</button> </div> </div> </div> </div> <%= javascript_pack_tag 'question'%>

11/18(水) 19:15 更新
現在、以下のようなエラーが出ています。

![イメージ説明]

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

maisumakun

2020/11/18 08:35

・フレームワークはRailsのようですが、バージョンはいくつでしょうか? ・question.jsのファイルはどれでしょうか?
moto12

2020/11/18 08:37

・フレームワークはRailsのようですが、バージョンはいくつでしょうか? → Rails は6.0.3.4になります。 ・question.jsのファイルはどれでしょうか? → 今から修正して、question.jsファイルが分かるようにします!
moto12

2020/11/18 09:38

<%= javascript_pack_tag 'question' %> という記述を、JSを反映させたいファイル(index.html.erb)の中に記述したらいいのでしょうか? 上記の通り実行した結果うまくいきませんでした。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。