diff --git a/lib/paper_trail.rb b/lib/paper_trail.rb index e9ead3c4..5b033801 100644 --- a/lib/paper_trail.rb +++ b/lib/paper_trail.rb @@ -2,7 +2,6 @@ require 'paper_trail/cleaner' require 'paper_trail/config' require 'paper_trail/controller' require 'paper_trail/has_paper_trail' -require 'paper_trail/version' require 'paper_trail/serializers/yaml' require 'paper_trail/serializers/json' @@ -22,6 +21,10 @@ module PaperTrail !!PaperTrail.config.enabled end + def self.protected_attributes? + Rails.version < '4' || defined?(ProtectedAttributes) + end + # Returns `true` if PaperTrail is enabled for the request, `false` otherwise. # # See `PaperTrail::Controller#paper_trail_enabled_for_controller`. @@ -101,6 +104,9 @@ module PaperTrail end +require 'paper_trail/version' + + ActiveSupport.on_load(:active_record) do include PaperTrail::Model diff --git a/lib/paper_trail/version.rb b/lib/paper_trail/version.rb index caa63844..a6b59e02 100644 --- a/lib/paper_trail/version.rb +++ b/lib/paper_trail/version.rb @@ -2,7 +2,7 @@ module PaperTrail class Version < ActiveRecord::Base belongs_to :item, :polymorphic => true validates_presence_of :event - attr_accessible :item_type, :item_id, :event, :whodunnit, :object, :object_changes if respond_to?(:attr_accessible) + attr_accessible :item_type, :item_id, :event, :whodunnit, :object, :object_changes if ::PaperTrail.protected_attributes? after_create :enforce_version_limit! diff --git a/test/dummy/config/initializers/paper_trail.rb b/test/dummy/config/initializers/paper_trail.rb index 33752da5..fb5f560f 100644 --- a/test/dummy/config/initializers/paper_trail.rb +++ b/test/dummy/config/initializers/paper_trail.rb @@ -1,5 +1,5 @@ module PaperTrail class Version < ActiveRecord::Base - attr_accessible :created_at, :updated_at, :answer, :action, :question, :article_id, :ip, :user_agent, :title if respond_to?(:attr_accessible) + attr_accessible :created_at, :updated_at, :answer, :action, :question, :article_id, :ip, :user_agent, :title if ::PaperTrail.protected_attributes? end end