問題タブ [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 - ペーパー トレイル表示には多くのオブジェクトがあります
paper Trail gem を使用して、オーダー Web アプリケーションのバージョン変更を追跡しています。has_many バージョンの表示に問題があります
注文モデル:
広告申込情報モデル:
注文管理者:
履歴html:
問題は、.versions
単一のオブジェクト (から.find
) が見つかった場合の動作です。ただし、( からの) オブジェクトの配列.find_all_by
が に渡されると、.versions
このエラーが返されます。
ruby-on-rails - ペーパー トレイル取得オブジェクト
紙の証跡がバージョン管理したオブジェクトを取得しようとしています。ただし、.reify を使用すると、以前のバージョンが取得されます。最新のものではありません。
例えば
コントローラ
意見
object = line_item.last.reify(options = {})
またはobject = line_item.next_version.reify(options = {})
両方とも、未定義のメソッド エラーを返します。
特定の情報をやり取りして表示できるように、適切なオブジェクトを取得するにはどうすればよいですか?
ruby-on-rails - paper_trail gem を使用して作成者の詳細を保存するにはどうすればよいですか?
投稿を含むレール (4.1.6) ブログ アプリがあります。ユーザー向けのデバイスを使用しており、バージョン管理のためにpaper_trailジェムを統合中です。
paper_trail と統合する前は、各投稿には、create: の先頭にある current_user で埋められた属している :user がありました@post = Post.new(user: current_user)
。ただし、paper_trail にはアイテムの作成者が格納されるため、代わりに @post.originator を使用して作成者にアクセスしたいと考えています。
このブログ アプリでは、サインインしたユーザーのみが投稿を作成できます。バリデーターで @post.originator が存在することを確認する必要がありますが、投稿を検証している間、発信者は空白です (おそらく、投稿がデータベースに作成されるまで paper_trail が紙の証跡データを保存しないため)。
そのため、投稿を作成してバリデーターを実行すると、代わりにオリジネーターを使用すると、発信者がいないため投稿を作成できないというエラーが表示されます。
私が見るオプションは次のとおりです。
- user_signed_in を検証しますか? モデルの作成者 (ユーザー/発信者) を検証しません。
- すべてのモデルで冗長なユーザー フィールドを作成して投稿の作成者を保存し、それを検証に使用する
- 1と2の両方を行う
- どういうわけか(どのように?) paper_trail にモデルの作成者を提供させ、それを検証に使用する
理想的なアプローチは #3 または少なくとも #1 または #2 だと思いますが、#4 を達成する方法があるかどうかを確認したかったのです。
ありがとうアナンド
ruby-on-rails - PaperTrail 手動でバージョンを作成する
CSV に変換し、カスタム インポート スクリプトを使用して Rails ベースのアプリケーションにインポートする項目のスプレッドシートがあります。
スプレッドシートには各レコードの行が含まれていますが、一部の行には以前の行の異なるバージョンが含まれています。
CSV をインポートするとき、私は現在、「past_version」フィールドを使用して 2 行目をマークしていますが、完全なバージョニング gem を実装する方がはるかに優れた方法であると考えています。
私は PaperTrail のドキュメントを読んでいますが、私が求めているものには完璧に見えますが、インポート スクリプトの一部としていくつかの行のバージョンを作成する必要があります。これは PaperTrail で実行できますか?
基本的に、インポートを開始する必要があります。たとえば、レコード 1、2、3、4、5 が正常に追加され、レコード 6 は実際にはレコード 2 の新しいバージョンであるため、PaperTrail バージョンを手動で作成する必要があります。
これは可能ですか?
ruby-on-rails - has_many :through を使用して PaperTrail のバージョン管理を使用し、レール 4 で関連付けを具体化する方法
バージョン管理に PaperTrail を使用しようとしています 関連付けが元に戻りません。私は何か間違ったことをしているに違いない。これは私のものと同様の設定です。PaperTrail の最新の master ブランチを使用しています。
これが私がやっていることです。
b.colors は空にする必要があります。また、ball.versions には、ボールに色を追加したときの変更が含まれていません。「色を追加する前」の作成、更新、「色の追加後」の更新のみがあります。誰かが私が間違っていることを教えてくれますか、または例を教えてくれますか? ドキュメントの Associations セクションを読みましたが、役に立ちませんでした。
ruby-on-rails - Rails は PaperTrail バージョンのビューを表示します
私は PaperTrail の非常に奇妙なユースケースを持っています。私のシナリオでは、バージョンは物理的なイベントの発生に基づいています。このため、私のモデルのバージョンは、私が言ったときにのみ作成されます。
以上のことから。これらのバージョンで次のことができることを願っています。
のようなものを実行すると、期待どおりにバージョンを無視する必要がありますが、バージョンを通常どおりに返したい場合があるため、現在のすべてのレコードと関連するすべてのバージョンを返すModel.all
ようにする必要があります。Model.withVersions
これは可能ですか?
また、バージョンのページを作成できる必要があります。つまり、Rails Show Action と View です。
どうすればこれを達成できますか? /model/23
そのアイテムの特定のバージョンに関するページに移動するのと同様のものを出力するページの 1 つへのリンクを作成できる必要があります。
これは奇妙な問題だと思いますが、誰かがこの奇妙なユースケースについて意見を持っているかどうか、また、バージョンをフォアグラウンドに移動して既存のもののように動作させたり、通常どおりバックグラウンドにとどめたりする方法があるかどうか疑問に思っています。
logging - ブラウザーの Logstash ログの末尾
だから私はlogstash-forwarder(lumberjack)を使ってElasticSearchとKibanaでLogstash 1.4.2をセットアップしました。
これは可能ですか、ありがとう!
ruby-on-rails-4 - Rails 4.2/Ruby 2.2.0 で paper_trail gem が空の挿入を試みているのはなぜですか?
Rails 4.2.0 と Ruby 2.2.0 に最近アップグレードされたアプリがあります。アップグレード以来、実稼働環境で次の例外が発生しています。
Mysql2::エラー: フィールド 'item_type' にはデフォルト値がありません: INSERT INTO
versions
VALUES ()
これは一貫して発生していないようです。これが他のユーザーで発生した ExceptionNotification 電子メールのために、これが存在することを知っているだけです。問題を再現するために何度か試みましたが、同じコードを実行しても問題は発生しませんでした。
また、has_paper_trail を呼び出すすべてのモデルでオプションを渡していないことにも言及したいと思います。そのため、追跡される属性に制限はありません。バージョンが挿入されている場合、常に何らかの変更が必要なようです。
これは、Rails 3.2.11 と Ruby 1.9.3 から Rails 4.2.0 と Ruby 2.2.0 にアップグレードするまでは起こりませんでした。
GitHub を確認したところ、Gemfile.lock によると、paper_trail 2.7.2 から 3.0.6 になったようです。
これが発生する原因は何ですか?どうすれば修正できますか?
ruby-on-rails - ActiveRecord レスポンスの保持
私のモデルでは、次のようなメソッドがあります。
問題は、これを呼び出すことで実行できるコントローラーでこれを使用したいということですCar.all.including_versions
。ただし、私のコントローラーは、最後に並べ替えと順序付けを行い、さらに ActiveQuery メソッドを連鎖させます。余分なものをそれにチェーンするにはどうすればよいですか、または配列を使用せずに上記を実行してアクティブレコードレスポンスを維持する方法はありますか?
ありがとう