はじめに
・本記事ではコントローラからjavascriptにパラメータを渡す方法を説明します。
controller→view→javascriptとviewを介してパラメーターを渡すことができます。
まず、コントローラからビューへは、インスタンス変数を使いパラメータを渡します。
/app/controller/books_controller.rb
def index
#パラメータを、インスタンス変数でビューに渡す
@book = 'コントローラからjavascriptへパラメータを渡す方法'
end
view(ビュー)ではinputタグでtypeをhidden属性にし、valueとして受け取ります。
/app/views/books/index.html.erb
<h1>indexページ</h1>
<input type="hidden" id="book" value="<%= @book %>">
javascriptで、htmlの要素をdocument.getElementByIdで取得します。
/app/assets/javascripts/application.js
window.onload = function () {
const book = document.getElementById('book').value
alert(book);
}
ブラウザで確認すると、コントローラから渡した@bookのパラメータが、javascriptのalertログで出力されていることが分かります。