問題タブ [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.

0 投票する
1 に答える
493 参照

ruby-on-rails - Railsモデルのバージョン管理-独立してバージョン管理された列を持つ1つのモデル

バージョン管理したいさまざまなフィールドを含むwiki機能を備えた多言語Webサイトのモデルがありますが、一部の列に加えられた変更を元に戻す必要がありますが、他の列には戻す必要がありません。

たとえば、モデルインスタンスごとに英語版とスペイン語版のガイドを作成します。

想像:

  • ユーザーAがスペイン語ガイドを編集し、冒とく的な表現を追加します
  • ユーザーBは後で英語ガイドを編集し、役立つ変更を加えます。

通常、バージョン管理とは、ユーザーAが行った変更を元に戻すと、ユーザーBが後で行った変更も元に戻すことを意味しますが、私の場合、これらは2つの別個の懸念事項です。

したがって、基本的にスコープ付きのバージョン履歴が必要です。たとえば、papertrailを使用します。

これに対する最も簡単な解決策はありますか?これを達成するためだけに、ガイドを1対1の関係を持つ別々のモデルに移動したくありません。

0 投票する
2 に答える
1500 参照

ruby-on-rails - How to setup admin approval a model's edits

I need a system where a regular user can edit a model but the edits don't actually happen until they are approved by an administrator. I found a gem called paper_trail that does had model versioning but doesn't support specifically what I want to do. I'm wondering how other people have handled this problem. I should add that there are also associations that I would like to be able for the user to edit at the same time. They aren't very complicated, for example one is aliases.

The more complicated part maybe be the case where multiple users edit the same model and trying to do some sort of merge.

0 投票する
1 に答える
307 参照

ruby-on-rails - コントローラー/ビューでの取り消しとやり直しの実装

Rails アプリにバージョニングを実装するためにpaper_trailを使用しています。バックエンドをフロントエンドに結び付けるときに、頭を悩ませたことがあります。

ユーザーが AJAX を介してレコードを更新 (新しいバージョンを作成) できるようにするため、「元に戻す」/「やり直し」機能は、コントローラーで計算するのではなく、現在のページの状態に (何らかの方法で) 関連付ける必要があります。私が持っていた 1 つのアイデアは、すべての AJAX 要求で最新のバージョン番号を返し、このバージョン番号で「元に戻す」リンクを更新することでした。

他の誰かがこれに取り組んだことがありますか?それを行う最良の方法は何ですか?

0 投票する
1 に答える
108 参照

ruby-on-rails - Ruby on Rails: 私のモデルの既存の属性、オプションを破壊する宝石に更新しますか?

私が使用してきた宝石は、モデルにメソッドを追加します。最近、メソッド名が更新され、メソッド名の 1 つがモデルの既存のデータベース属性の 1 つと同じになりました。

gem を最新の状態に保ちたい場合、データベースの列の名前を変更し、すべてのコードを更新する以外に、この問題の回避策はありますか?

これをより具体的にするのに役立つ場合は、gem が PaperTrail であり、モデルにバージョン追跡を追加します。私のモデルには、version_name というデータベース内の既存の属性がありました。PaperTrail の最新バージョンは、別のメソッドの名前を定義するために PaperTrail によって使用される class_attribute version_name として追加されました。

0 投票する
1 に答える
394 参照

ruby-on-rails - 主キーが「id」ではないクラスで paper_trail を使用する

Rails 3 アプリでいくつかのモデルに paper_trail を使用しましたが、結合モデルに適用しようとすると問題が発生しました。主キーは ID ではありません。

ドキュメントとソースを確認しましたが、id の使用をオーバーライドするオプションが表示されませんでした。助言がありますか?

0 投票する
1 に答える
680 参照

ruby-on-rails-3 - paper_trail で既存の User モデルでエラーが発生する

Userモデルをバージョン管理するように設定する際に競合はありますpaper_trailか? 次のようなモデル「ユーザー」があります。

問題は、呼び出すたびにuser#versions例外が発生することです。

( with で呼び出さversionsれたときに例外がスローされます。Userid = 6

を保存しようとしているときにも問題がありUserます。次の例外が発生します。

and にsaveデータが入力されていないようです。item_iditem_type

どんな助けでも大歓迎です。

前もって感謝します

0 投票する
6 に答える
2436 参照

ruby-on-rails - Papertrail と Carrierwave

私は両方を使用するモデルを持っています: 店舗の写真用の Carrierwave とPaperTrailバージョン管理用です。

また、更新時にさまざまなファイルを保存するようにCarrierwaveを構成しました(これは、写真のバージョンを変更したいためです)config.remove_previously_stored_files_after_update = false

問題はPaperTrail、単なる文字列 (URL となる) ではなく、写真 (CarrierWave Uploader) から Ruby オブジェクト全体を保存しようとすることです。

(バージョン テーブル、列オブジェクト)

写真バージョンに単純な文字列を保存するには、どうすればこれを修正できますか?

0 投票する
1 に答える
1013 参照

ruby-on-rails - アクティブ レコードの監査履歴

Rails3 アプリケーションでいくつかのテーブルの監査を有効にする予定です。paper_trail を調べたところ、すべてのバージョンが保存されているようですが、連続するバージョン内でどのフィールドが変更されたかの違いを見つけるメカニズムがあるかどうかはわかりませんでした。paper_trail ジェムを使用することは可能でしょうか?それとも、この機能に vestal_versions のようなものを使用する必要がありますか?

0 投票する
3 に答える
2336 参照

ruby - paper_trail でカスタム イベントを追跡する方法は?

監査証跡に paper_trail を使用しています。create、update、delete イベントに加えて、view(record)、sent(email) などのいくつかのカスタム イベントを追跡したいのですが、モデルの監査中にそのようなカスタム イベントをどのように導入できますか?

0 投票する
2 に答える
1557 参照

ruby-on-rails-3.1 - paper_trail との has_many/belongs_to 関連付けのバージョンを修正する方法

モデルのバージョンを追跡するために、レールで paper_trail を使用しています。しかし、github リポジトリのドキュメントは、gem がhas_many,belongs_to関連付けをサポートしていないことを示しています。

いくつかの会社のCEOの名前を記録するアプリがあるとしましょう:

上記の例は、ABC Inc. の情報を表しています。

次の操作を実装して、会社と会社の CEO 名を最後のバージョンにリセットするにはどうすればよいですか?