ruby on rails - Set version limit per model in Papertrail? -


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