ねこものがたり

いちにちいっぽ

RailsでDOMにデータを埋め込んでJSに渡す方法

備忘録です。 備忘録って便利な言葉だ。

環境

rails 5.2.3

やりたいこと

インスタンス変数@usersをVue.jsでリスト表示したいので、 Rails→JSでこの変数を受け渡したい。 (「AjaxAPIを呼び出す方法」ではない方法を理解したいので今回それは省略)

書き方

Rails

実際は業務のコードなので改変。

class UsersController < ApplicationController
  def index
    @users = User.all  
  end
end


# users/index.html.slim

#users(
    data-users: @users.to_json
)


# JavasScript
# ユースケースによってはconstの方がいいかもしれない
var list = document.getElementById('users');
var usersList = list.getAttribute("data-users");

参考記事

www.sitepoint.com