はあなたが欲しい答えです:
はに一定の "PAPER_TRAIL_VERSION_LIMIT" を追加します。次のような記事モデル
# models/article.rb
class Article < ActiveRecord::Base
has_paper_trail
# 10 mean you article will have 11 version include 'create' version
PAPER_TRAIL_VERSION_LIMIT = 10
end
# /config/initializers/paper_trail.rb
module PaperTrail
class Version < ActiveRecord::Base
private
def enforce_version_limit!
limit = PaperTrail.config.version_limit
# This is the key custom line
limit = item.class::PAPER_TRAIL_VERSION_LIMIT if item.class.const_defined?("PAPER_TRAIL_VERSION_LIMIT")
return unless limit.is_a? Numeric
previous_versions = sibling_versions.not_creates
return unless previous_versions.size > limit
excess_versions = previous_versions - previous_versions.last(limit)
excess_versions.map(&:destroy)
end
end
end
PaperTrailコンフィグファイルの末尾にコードの下に追加は、それをお楽しみください! :そして、あなたは単にあなたがのための代替制限を指定したい任意のモデルに
version_limit
を定義することができ
# /config/initializers/paper_trail.rb
module PaperTrail
module VersionConcern
private
def enforce_version_limit!
limit = defined?(version_limit) ? version_limit : PaperTrail.config.version_limit
return unless limit.is_a? Numeric
previous_versions = sibling_versions.not_creates
return unless previous_versions.size > limit
excess_versions = previous_versions - previous_versions.last(limit)
excess_versions.map(&:destroy)
end
end
end
:D
私は、ここで説明するように、異なる目的のために異なる構成を実現するためにサブクラスを使用しています:https://github.com/airblade/paper_trail#custom-version-classes howerあなたは、異なるバージョンのテーブルを持ってしまいますと、私はそれがあなたが欲しいものであるかどうかわからない – siax