Ruby on Railsでjbuilderを使ってモデルから取得したオブジェクトをJSON形式に変換し、JavaScript(CoffeeScript)で使用できるようparseする方法を紹介します。
jbuilderを使ってモデルから取得したオブジェクトをJSON形式に変換
モデルからユーザ情報を取得します。
・user_informations_controller.rb
1 2 3 4 5 6 7 | class UserInformationsControlle def index @users = ::User.all respond_to do |format| format.html { render action: :index } end end |
jbuilderを使って、ユーザ情報をJSON形式で返します。
・_user_infomation_user.json.jbuilder
1 2 3 4 5 6 | @users.each do |user| json.set! user.id do json.user_name user.name json.user_phone_number user.phone_number end end |
viewでjbuilderで整形したJSON形式のユーザ情報をJavaScript(CoffeeScript)で宣言した変数に代入します。
・_user_information_index.html.erb
1 | Application.user_informations.users = '<%= render(partial: "user_information_user.json.jbuilder").html_safe %>'; |
代入した変数をparseして、JavaScript(CoffeeScript)で使用できるようにします。
・user_informations.coffee
1 2 3 | class UserInformationsController users = '' users_json = $.parseJSON(self.users) |