Paper_trail をアクション テキストで動作させるにはどうすればよいですか?
概要
Paper Trail Gem を、body というテキスト列を持つ基本モデルの Article でうまくセットアップしました。ただし、アプリケーションにアクション テキストを実装し、記事モデルから列本文を削除した後、Paper Trail で関連する本文列の変更を追跡できなくなります。どうすればこれを機能させることができますか?
免責事項: 私は Rails の初心者です。
記事.rb
...
has_rich_text :body
has_paper_trail
...
記事スキーマ (:body 列削除後)
create_table "articles", force: :cascade do |t|
t.string "title"
t.string "slug"
t.datetime "archived_at"
t.datetime "published_at"
...
end
アクションテキストスキーマ
create_table "action_text_rich_texts", force: :cascade do |t|
t.string "name", null: false
t.text "body"
t.string "record_type", null: false
t.bigint "record_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true
end
以前と同じ機能をアプリに戻して、記事の本文に加えられた変更を確認したいと考えています。例えば。誰かが文を追加したり、単語を削除したりしました。
解決策
答えを組み合わせるとうまくいきました。
# frozen_string_literal: true
ActiveSupport.on_load(:action_text_rich_text) do
ActionText::RichText.class_eval do
has_paper_trail
end
end
lib/rich_text_paper_trail.rb でこのファイルがロードされていることを確認してください。たとえば、明示的に要求することで: require ‘rich_text_paper_trail’