2

publicactivity gem を使用して、アプリケーション内のアクティビティを監査しています。

MongoDB を使用しており、以下のデータはどれも実際のものではありませんが、実際のデータを表しています。

私はこのようないくつかのデータを押し込みました:

"changes" : [
        {
            "oldFirst" : "Aaron2",
            "oldLast" : "Aardvark2",
            "oldCity_id" : "Bogota, TN",
            "oldZip_code" : 38007,
            "oldPhone" : [
                "9993339999",
                "4442224443"
            ],
            "oldStreet1" : "1111 Brighton Clopton St",
            "oldStreet2" : "Suite 100",
            "oldEmail" : [
                "uk@tel.com"
            ],
            "oldType" : "customer",
            "oldLatitude" : "36.1625531",
            "oldLongitude" : "-89.4362431",
            "oldCust_notes" : "",
            "oldAccount_id" : ""
        },
        {
            "newFirst" : "Aaron",
            "newLast" : "Aardvark",
            "newCity_id" : "Brighton, TN",
            "newZip_code" : 38011,
            "newPhone" : [
                "9993338888",
                "4442223334"
            ],
            "newStreet1" : "1111 Brighton Clopton Dr.",
            "newStreet2" : "",
            "newEmail" : [
                "uk@tel.com"
            ],
            "newType" : "customer",
            "newLatitude" : "35.4558615",
            "newLongitude" : "-89.68162079999999",
            "newCust_notes" : "",
            "newAccount_id" : ""
        }
    ]

では、これらの要素についてどのように話せばよいでしょうか。

私は試した:

<%= activity.changes[0]["oldFirst"] %>
<%= activity.changes["oldFirst"] %>
<%= activity.changes.oldFirst %>
<% if activity.changes.any?
  activity.changes.each do |c|
%>
<%= c["oldfirst"] %>
<%end%>
<%end%>

何度も私は知っている組み合わせを試しました - そして私はこれを得ています:

no implicit conversion of String into Integer

文字列を整数に?! なんてこと?それはすべて文字列型のデータであり、文字列型のデータとしてアクセスしようとしています-なぜ整数値を持っている、または欲しいと考えるのかわかりません。

助けてくれる?

4

2 に答える 2

1

DB に次のような 1 つの不正なエントリがあったことがわかりました。

[[{ },{ }]]

私が使用しているフォントを使用してすべてが非常にきつくまとまっている場合、端末の二重括弧が見にくいです。

これは、その単一のエントリが削除され、残りが所定の位置に残されると正常に機能します ([{ },{ }] のようにフォーマットされます)。

activity.changes[0]["oldFirst"]

于 2013-10-02T05:08:04.387 に答える
0

ここに投稿しているのは、Ruby オブジェクトではなく、JSON データ構造です。

最初に JSON で解析する必要があります。その後、次の方法でアクセスできます。

 require 'json'
 activity = JSON.parse( json_string )
 activity.changes[0]["oldFirst"]
于 2013-10-02T03:45:13.370 に答える