Changed the way that notable attributes are worked out to make better sense, and updated the readme
This commit is contained in:
parent
c97eee5868
commit
7e34a81edf
18
README.md
18
README.md
|
@ -164,7 +164,7 @@ Here's a helpful table showing what PaperTrail stores:
|
||||||
PaperTrail stores the values in the Model Before column. Most other auditing/versioning plugins store the After column.
|
PaperTrail stores the values in the Model Before column. Most other auditing/versioning plugins store the After column.
|
||||||
|
|
||||||
|
|
||||||
## Ignoring changes to certain attributes
|
## Choosing Attributes To Monitor
|
||||||
|
|
||||||
You can ignore changes to certain attributes like this:
|
You can ignore changes to certain attributes like this:
|
||||||
|
|
||||||
|
@ -182,6 +182,22 @@ This means that changes to just the `title` or `rating` will not store another v
|
||||||
>> a.versions.length # 2
|
>> a.versions.length # 2
|
||||||
>> a.versions.last.reify.title # 'My Title'
|
>> a.versions.last.reify.title # 'My Title'
|
||||||
|
|
||||||
|
Or, you can specify a list of all attributes you care about:
|
||||||
|
|
||||||
|
class Article < ActiveRecord::Base
|
||||||
|
has_paper_trail :only => [:title]
|
||||||
|
end
|
||||||
|
|
||||||
|
This means that only changes to the `title` will save a version of the article:
|
||||||
|
|
||||||
|
>> a = Article.create
|
||||||
|
>> a.versions.length # 1
|
||||||
|
>> a.update_attributes :title => 'My Title'
|
||||||
|
>> a.versions.length # 2
|
||||||
|
>> a.update_attributes :content => 'Hello'
|
||||||
|
>> a.versions.length # 2
|
||||||
|
|
||||||
|
Passing both `:ignore` and `:only` options will result in the article being saved if a changed attribute is included in `:only` but not in `:ignore`.
|
||||||
|
|
||||||
## Reverting And Undeleting A Model
|
## Reverting And Undeleting A Model
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,11 @@ module PaperTrail
|
||||||
end
|
end
|
||||||
|
|
||||||
def notably_changed
|
def notably_changed
|
||||||
self.class.only.empty? ? (changed - self.class.ignore) : (changed & self.class.only)
|
self.class.only.empty? ? changed_and_not_ignored : (changed_and_not_ignored & self.class.only)
|
||||||
|
end
|
||||||
|
|
||||||
|
def changed_and_not_ignored
|
||||||
|
changed - self.class.ignore
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns `true` if PaperTrail is globally enabled and active for this class,
|
# Returns `true` if PaperTrail is globally enabled and active for this class,
|
||||||
|
|
Loading…
Reference in New Issue