我将User.guided字段设置为在我的user.rb文件中序列化:
serialize :guided
在DB中,值的存储方式如下:
--- "{\"step1\"=>\"true\", \"step2\"=>\"false\"}"
所以在我的rails视图中我将值输出到JS:
<script>
var guided = <%= current_user.guided.to_json.html_safe %>;
</script>
然后在js控制台中,引导输出:
"{"step1"=>"true", "step2"=>"false"}"
问题是我无法访问个别值?你是怎么做到的?
guided.step1
undefined
错误
由于
答案 0 :(得分:1)
to_json
返回一个JSON字符串。您应该在客户端上解析该字符串以获取实际对象。
例如:
var guided = JSON.parse(<%= current_user.guided.to_json.html_safe %>);
此外,您的代码不会返回实际的JSON字符串,而是返回带有ruby哈希语法的字符串。可能会有更多的事情发生在你身上。此代码有效:
obj = {"step1"=>"true", "step2"=>"false"}
obj # => {"step1"=>"true", "step2"=>"false"}
obj.to_json # => "{\"step1\":\"true\",\"step2\":\"false\"}"