1

投稿を含むレール (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 が紙の証跡データを保存しないため)。

そのため、投稿を作成してバリデーターを実行すると、代わりにオリジネーターを使用すると、発信者がいないため投稿を作成できないというエラーが表示されます。

私が見るオプションは次のとおりです。

  1. user_signed_in を検証しますか? モデルの作成者 (ユーザー/発信者) を検証しません。
  2. すべてのモデルで冗長なユーザー フィールドを作成して投稿の作成者を保存し、それを検証に使用する
  3. 1と2の両方を行う
  4. どういうわけか(どのように?) paper_trail にモデルの作成者を提供させ、それを検証に使用する

理想的なアプローチは #3 または少なくとも #1 または #2 だと思いますが、#4 を達成する方法があるかどうかを確認したかったのです。

ありがとうアナンド

4

0 に答える 0