繁体   English   中英

纸迹字符串要散列

[英]Paper trail string to hash

是否可以将字符串转换为散列,以便像散列一样进行迭代?

"---
!ruby/hash:ActiveSupport::HashWithIndifferentAccess\ndescription:\n-
Original text blah blah.\n- New text blah blah.\nupdated_at:\n- 2014-05-12 09:18:21.000000000 Z\n-
2014-05-12 09:19:33.748593000 Z\n"

我正在使用paper_trail gem并尝试paper_trail非相邻版本。 这使我无法使用内置的"changeset"哈希值,而这正是我想要的。

使用许多正则表达式,我可以处理这些字符串,但是我想将它们转换为散列,在散列中将"description"作为键,接下来的两个项目为value.firstvalue.last

使用<%= version.object_changes %>调用该字符串。 我怎么称呼它为哈希?

您应该使用version.changeset来获取对象更改的已解析哈希。

如果您真的想将该字符串转换为ruby对象( ActiveSupport::HashWithIndifferentAccess ),则可以:

str = "--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ndescription..."
YAML.load(str)
# => {"description"=>["Original text blah blah.", "New text blah blah."], "updated_at"=>[2014-05-12 09:18:21 UTC, 2014-05-12 09:19:33 UTC]}

# or
PaperTrail.serializer.load(str)

参见Papertrail :: VersionConcern.changeset

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM