is there way limit number of versions, per model, in papertrail?
e.g., know can set global limit with
papertrail.config.version_limit = 3
but don't see way set per model, like
class article < activerecord::base has_paper_trail :limit => [10] end
i don't want limit number of versions saved (to ten) have latest ten saved (same config
version setting).
here answer want:
add constant "paper_trail_version_limit" article model below
# models/article.rb class article < activerecord::base has_paper_trail # 10 mean article have 11 version include 'create' version paper_trail_version_limit = 10 end
add below codes bottom of papertrail config file
# /config/initializers/paper_trail.rb module papertrail class version < activerecord::base private def enforce_version_limit! limit = papertrail.config.version_limit # 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
enjoy ! :d
Comments
Post a Comment