簡體   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