Detect protect attributes for rails 4

This commit is contained in:
Bradley Schaefer 2013-08-01 16:58:04 -05:00
parent 291aad0e15
commit 87e384def7
3 changed files with 9 additions and 3 deletions

View File

@ -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

View File

@ -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!

View File

@ -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