問題タブ [paper-trail-gem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Papertrailで個々のレコードのすべてのバージョンを表示する
私はリーグシステムを構築しており、現在、結果に応じてプレーヤーの「eloスコア」を保存および更新しています。今、私は「HighCharts」を追加して、シーズン中のプレーヤーのeloスコアを見栄えの良い折れ線グラフで表示しようとしています。誰かが私がPapertrailを使用して更新を保存することを提案しました、そして私はそれをすべてインストールしました。
ここに私の問題があります。「HighCharts」が使いやすい配列でユーザーのelo_scoreバージョンを吐き出す方法がわからないようです。elo_scoreの最後の更新を取得できます。
しかし、「elo_score」のすべての「バージョン」を吐き出す構文が見つからないようです。「1000、1020、1043、1020」のようなもの。
私も試しました:
しかし、これは私に「nil:NilClassの未定義のメソッド`elo_score'」を与えます。<%= @player.versions.map{|バージョン| version.reify%>は、明らかにelo_scoreだけでなく、レコード内のすべての情報を吐き出します。
誰か助けてもらえますか?申し訳ありませんが、これを明確にしていない場合、私はレールにまったく慣れていません。これは私の暇な時間の楽しいプロジェクトですが、私は爆発しています!
どうもありがとう!
ruby - 次のコードが何をするのか理解できません
誰かが私に以下のコードが何をしているのか説明できますか? before
ハッシュafter
です。
ペーパートレイルの異なる宝石からです。
ruby-on-rails - Paper_trail +Rails_admin+複数の「ユーザー」モデルを使用したデバイスの取得
Rails 3でアプリを開発しています。現在、ログインとしてDeviseを使用し、管理パネルとしてRails_adminを使用しており、Paper_trailは「user」モデルによって行われたすべての変更を追跡しています...問題は、UserとAdminの2つのユーザーモデルがあることです。したがって、履歴を追跡するようにPaper_trailを設定するためのrails_admin.rb(initiliazer)のコード行は次のとおりです。
ユーザーと管理者の両方がpaper_trailモニターを変更する方法はありますか、それとも1つのモデルのみに従うことができますか?このように設定し、Rails_admin内から管理者として変更を加えた場合でも、変更を行った管理者と同じIDを持つユーザーによって変更されたことがわかります。
ruby-on-rails-3 - user_idをpaper_trailバージョンテーブルに保存する
データへの変更を監査するために紙の証跡を使用しており、paper_trailがデフォルトで保存する「whodunnit」列に加えて、現在のユーザーのuser_idを保存したいと思います。
バージョン移行を変更してuser_id列を追加することに問題はありませんでした。しかし、アプリのさまざまなモデルからその列を設定する簡単な方法がわかりませんでした。
これはうまくいくようです:
そして、モデルのcurrent_userにアクセスできれば、うまくいくかもしれないと思います。しかし、私はしません。私のモデルでcurrent_userにアクセスする方法を調査した後、ここで哲学的な議論があることがわかりました。それは私の質問ではありません。
したがって、sentient_userやsentient_modelなどのgemを使用して、モデル内のcurrent_userにアクセスできるようにし、上記のコードのようなもので設定できるようにすることを考えています。
ただし、これらのgemを追加することは、私がここでやろうとしている小さなことには複雑に思えます。もっと簡単な方法があるのだろうかと思います。
アクションを実行した人のuser_idをバージョンテーブルに追加する最も簡単な方法は何ですか?
ruby - ペーパー トレイル プラグインと rspec
私はモデルを持っていCar
ます。
Car
アプリケーションのフォームからのインスタンスを更新すると、 PaperTrail プラグインが呼び出され、新しいバージョンが作成されます。
しかし、rspec を使用してこのモデルをテストすると、PaperTrail プラグインは呼び出されません。なぜだめですか?
ruby-on-rails - 子レコードを作成するときにpaper_trailのバージョン作成をスキップする
アソシエーションレコードを作成するafter_createフィルターを備えた単純なモデルがあります。
ただし、たとえば2つのトピックを作成するnowを作成すると、トピックが変更される前と後Subject
の同じ主題に対して2つのバージョンが作成されます。create
update
これを解決する方法について何かアイデアはありますか?
更新
トピックモデルは主題からのサブクラスではありませんが、それに属しています。また、paper_trailもあり、作成プロセスの最初から件名までバージョン管理する必要があります。
ruby-on-rails-3 - Rails 3 paper_trail は、元に戻すために複数の関連付けられたモデルを追跡します
ここ数日間、複数のオブジェクトを一度にロールバックできる元に戻すシステムとして paper_trail を使用しようと試みてきました。私はRailscastから始めて、何かを機能させるために最善を尽くしてきました。私は近づいているように感じますが、私の実装がより良くなる可能性がある、またはおそらく私が知らない、または私のスキルを超えている別の方法があると感じています.
これまでのところ、私はこれを試しました:
バージョンにparent_id列を追加しました。これは別のバージョン ID を保持します。
この ID を設定するメソッドを作成しました。保存、更新、または削除を行った後、親モデルと子モデルを渡し、その子の最新バージョンの parent_id を親の最新バージョン ID で更新します。次のようになります。
そして、親モデル以外にも影響を与える更新を行うときは、これを呼び出して、作成したばかりの子モデルのバージョンも更新します。
私の revert メソッドでは、params[:id] でバージョンを見つけ、parent_id params[:id] ですべての子を見つけて、それらすべてを具体化します。これはある程度うまく機能します。
問題はコールバックにあります-モデルにコールバックがあり、before_destroy で別のモデルを変更します。ただし、この場合、ユーザーがこの破棄を開始したのか、別のモデルを開始したのかがわからないため、parent_id を取得できません。つまり、Employee には多くのアイテムがあり、employee はアイテムを破棄し、item は employee before_destroy を変更します。before_destroy は、なぜ破壊されたのか、誰が破壊したのかを知りません。
papertrail の gem が、関連付けではうまく機能しないとすでに言っていることは知っていますが、これは可能でなければならないと感じています-どういうわけかコールバックを見ているのでしょうか? 私はこれについて深入りしすぎているかもしれませんが、取り消しが機能するアクションについては、非常に優れており、削除したくありません。
どんなアイデアでも大歓迎です。ありがとう!
ruby-on-rails-3 - Hodel 3000 準拠のログを作成して Heroku で oink を使用する
メモリ リークが発生しており、それを追跡しようとしているため、Heroku サーバーで oink を使用しようとしています。Heroku はログ アーカイブを提供しないため、Papertrail アドオンを使用して Amazon S3 にエクスポートします。
これには成功しましたが、oink を使用するには、ログ ファイルが「Hodel 3000 準拠のロガー」と呼ばれる特別な形式である必要があります。開発中はなんとかできましたが、本番環境 (*heroku) でそのようなログ ファイルを作成する方法がわかりません。どんな助けでも大歓迎です。
前もって感謝します、
フアン・ラグランジェ
activerecord - belongs_to 特定のバージョン
モデルの特定のバージョンを注文とともに保存する必要があります。paper_trailやvestal_versionsなどのバージョニング gem を使用する予定です。正しいバージョンが注文とともに自動的にロードされることを希望します。
理想的には、単にオブジェクトを保存しorder.update_attributes(:stuff => bought_stuff)
、注文がそのバージョンを記憶して、その後の読み込みがorder.reload.stuff
注文が保存されたときのオブジェクトのままになるようにします。
そのような機能を提供する宝石はありますか? 見つかりませんでした。
それ以外の場合、ActiveRecord とバージョニング gem を使用してそれを実現するにはどうすればよいですか?
ruby-on-rails - Papertrail のバージョン管理と現在のバージョンの保存?
約 1000 のレコードが既に作成された後、Papertrail gem をアプリに追加しました。
バージョン テーブルに現在のバージョンのデータを入力する方法を知っている人はいますか?
これを行わないと、それぞれの2番目の変更のみが、適切に比較を行ったり、差分などを介して変更されたものにフラグを付けたりできるようになります。
どうもありがとう!