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

How to use the data stored in a rails serialized field

本文关键字:字段 数据 序列化 rails 何使用 存储      更新时间:2023-09-26

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

serialize :guided

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

--- "{'"step1'"=>'"true'", '"step2'"=>'"false'"}"

所以在我的轨道视图上,我将值输出到 JS,如下所示:

<script>
var guided = <%= current_user.guided.to_json.html_safe %>;
</script>

然后在 js 控制台中,引导输出:

"{"step1"=>"true", "step2"=>"false"}"

问题是我无法访问单个值?你是怎么做到的?

作为guided.step1错误与undefined

谢谢

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'"}"