如何使用存储在rails序列化字段中的数据

时间:2012-04-23 01:51:54

标签: javascript jquery ruby-on-rails ruby-on-rails-3

我将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错误

由于

1 个答案:

答案 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\"}"