私は自分のプロジェクトでPapertrail gemを使用しており、次のことを行う方法を見つけるために広範囲に検索しました。
私がやりたいことは、特定の属性が特定の値になったオブジェクトのバージョンを見つけることです。
object.versions.where(attribute: "value")
これが Papertrail でも可能かどうかは誰にもわかりませんか?
私は自分のプロジェクトでPapertrail gemを使用しており、次のことを行う方法を見つけるために広範囲に検索しました。
私がやりたいことは、特定の属性が特定の値になったオブジェクトのバージョンを見つけることです。
object.versions.where(attribute: "value")
これが Papertrail でも可能かどうかは誰にもわかりませんか?
attribute
以下は、になったすべてのバージョンを取得しますvalue
(ほとんどのアプリでは、おそらく 1 前後です)。
object.versions.
map(&:object_changes).
map{|a| YAML::load a}.
select{|a| (a[:attribute] || [])[1]=='value'}
結果は次のようになります。
[{"attribute"=>[nil, "value"],
"updated_at"=>[2015-01-02 12:20:36 UTC, 2015-01-02 12:20:56 UTC]}]
updated_at[1]
値はいつにattribute
なったかを示しますvalue
。
バージョンの ID の取得は、提供されたコード スニペットに基づいて構築できます。