rails hash轉換成前端可用的json

 

如果說,在home_controller.rb裏的index方法中定義了

@data = {a: 1, b: 2}

那麼通過<%= @data %>傳到前端的js會解析成

var arr = <%= @data %>
# var arr = {:a=&gt;1, :b=&gt;2}

var arr = <%= raw @data %>
# var arr = {:a=>1, :b=>2}

然後呢,你嘗試在index那個action裏用

@data = {"a": 1, "b": 2}這麼定義

覺得會把:a變成"a",:b變成"b"

實際上呢 ???

var arr = <%= raw @data %>

# 解析出來的依舊是這個 var arr = {:a=>1, :b=>2}

這時候咱們就用下gem "activesupport"裏提供的stringify_keys這個方法

var arr = <%= raw @data.stringify_keys %>
# var arr = {"a"=>1, "b"=>2}

var arr = <%= raw @data.stringify_keys.to_json %>
# var arr = {"a":1,"b":2}

一切都正常了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章