\r\n```\r\n\r\n\r\nところが上記を実際に動かすと普通に呼び出せました。\r\nちょっと混乱してきました???\r\n\r\nこの動作について教えていただけないでしょうか?\r\n\r\n真似して実際に動かしたプログラムは以下です。\r\n\r\n私の環境では、<%= javascript_include_tag %>の行は内でした。\r\n参考先に合わせてyield の真下に移動させても結果は同じでした。\r\n\r\napp/views/layouts/application.html.erb\r\n```ruby\r\n\r\n\r\n \r\n <%= full_title(yield(:title)) %>\r\n <%= csrf_meta_tags %>\r\n <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>\r\n <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>\r\n <%= render 'layouts/shim' %>\r\n \r\n\r\n \r\n <%= render 'layouts/header' %>\r\n
\r\n <% flash.each do |message_type, message| %>\r\n <%= content_tag(:div, message, class: \"alert alert-#{message_type}\") %>\r\n <% end %>\r\n <%= yield %>\r\n
\r\n <%= render 'layouts/footer' %>\r\n <%= debug(params) if Rails.env.development? %>\r\n \r\n\r\n\r\n```\r\n以下のようにすると、「ほげ。」が表示されました。\r\napp/views/users/index.html.erb\r\n```ruby\r\n
ほげ。
\r\n\r\n\r\n```\r\n\r\n\r\n\r\nなぜ当方の環境では、参照できたのでしょうか?\r\n初心者につき的外れなことを質問しているかもしれませんが、どうぞ宜しくお願いします。","answerCount":1,"upvoteCount":0,"datePublished":"2020-07-08T01:48:39.589Z","dateModified":"2020-07-08T01:48:39.589Z","acceptedAnswer":{"@type":"Answer","text":"お騒がせしてすみませんでした。\r\n\r\n当方の試したviewは、モーダルで起動していたせいでした。","dateModified":"2020-07-08T02:08:36.669Z","datePublished":"2020-07-08T02:08:36.669Z","upvoteCount":0,"url":"https://teratail.com/questions/275945#reply-393340"},"suggestedAnswer":[],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"トップ","url":"https://teratail.com"},{"@type":"ListItem","position":2,"name":"Ruby on Rails 5に関する質問","url":"https://teratail.com/tags/Ruby%20on%20Rails%205"},{"@type":"ListItem","position":3,"name":"Ruby on Rails 5","url":"https://teratail.com/tags/Ruby%20on%20Rails%205"}]}}}
質問するログイン新規登録
Ruby on Rails 5

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

JavaScript

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

Q&A

解決済

1回答

950閲覧

view内からベタ書きのjava scriptを呼ぶ動作について

pecchan

総合スコア592

Ruby on Rails 5

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

JavaScript

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

0グッド

0クリップ

投稿2020/07/08 01:48

0

0

rails5.2です。

Java Scriptの動作について勉強してるところです。

下記の記事によると、view内に書いたベタ書きのスクリプトは、
参照できない("$" が呼び出せない)と記載あります。

Rails assets 内の JavaScript のメソッドを View 内から呼び出す方法

以下に参考先のソースを転載します。

app/views/layouts/application.html.erb

ruby

1<html> 2<head> 3 <title>Sample App</title> 4 <%= stylesheet_link_tag 'application', media: 'all' %> 5 <%= csrf_meta_tags %> 6</head> 7<body> 8 <%= yield %> 9 <%= javascript_include_tag 'application' %> 10</body> 11</html>

app/views/users/index.html.erb

ruby

1 2<div id="users"> 3 ..... 4</div> 5<script> 6 $("#users").... // <- "$" が呼び出せない!! 7</script>

ところが上記を実際に動かすと普通に呼び出せました。
ちょっと混乱してきました???

この動作について教えていただけないでしょうか?

真似して実際に動かしたプログラムは以下です。

私の環境では、<%= javascript_include_tag %>の行は<head>内でした。
参考先に合わせてyield の真下に移動させても結果は同じでした。

app/views/layouts/application.html.erb

ruby

1<!DOCTYPE html> 2<html> 3 <head> 4 <title><%= full_title(yield(:title)) %></title> 5 <%= csrf_meta_tags %> 6 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 7 <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> 8 <%= render 'layouts/shim' %> 9 </head> 10 11 <body> 12 <%= render 'layouts/header' %> 13 <div class="container"> 14 <% flash.each do |message_type, message| %> 15 <%= content_tag(:div, message, class: "alert alert-#{message_type}") %> 16 <% end %> 17 <%= yield %> 18 </div> 19 <%= render 'layouts/footer' %> 20 <%= debug(params) if Rails.env.development? %> 21 </body> 22</html> 23

以下のようにすると、「ほげ。」が表示されました。
app/views/users/index.html.erb

ruby

1<div id="hoge">ほげ。</div> 2 3<script> 4 alert ($('#hoge').html()); 5</script>

なぜ当方の環境では、参照できたのでしょうか?
初心者につき的外れなことを質問しているかもしれませんが、どうぞ宜しくお願いします。

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

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

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

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

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

maisumakun

2020/07/08 01:52

> 私の環境では、<%= javascript_include_tag %>の行は<head>内でした。 これでは全く話が違います。先に読み込めば、当然参照可能です。
pecchan

2020/07/08 02:00

有難う御座います。 なので、yield の真下の行に移動させたのですが同じでした。
maisumakun

2020/07/08 02:01

そのページでリロードしても正しく動作しますか?
pecchan

2020/07/08 02:07

度々すみません、有難う御座います。 そのご質問で気付けました。 モーダルで実行してるせいでした。 お騒がせして申し訳ございませんでした。
guest

回答1

0

自己解決

お騒がせしてすみませんでした。

当方の試したviewは、モーダルで起動していたせいでした。

投稿2020/07/08 02:08

pecchan

総合スコア592

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問