0

我在我的 user.rb 文件中将 User.guided 字段设置为序列化:

serialize :guided

在数据库中,值的存储方式如下:

--- "{\"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

谢谢

4

1 回答 1

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\"}"
于 2012-04-23T01:55:54.290 回答