Rails上でタイマーのような時間を管理する機能の実装時にモデルの値をJSに渡したい事案。
いろいろ対応方法はありますが、今回はGemの『gon』を使ってみた。
[Gemfile]
gem 'gon'
bundle install
を実行する。[views/layouts/application.html.erb]
<%= include_gon %>
<%= javascript_include_tag "application" %>
[hoge.controller.rb]
gon.user_name = 'テスト太郎'
gon.my_hash = @project
gon.push({
:user_id => 1,
:user_role => "admin"
})
[hoge.coffee]
$(document).on 'turbolinks:load', ->
console.log(gon.user_name)
console.log(gon.my_hash)
console.log(gon.user_role)
console.log(gon.all_variables)
console.log(gon)
最後までお読みいただき、ありがとうございました。
ご意見などありましたら@hippohackへDMをお願いいたします。