diff options
author | bogdanvlviv <bogdanvlviv@gmail.com> | 2018-09-10 19:10:44 +0300 |
---|---|---|
committer | bogdanvlviv <bogdanvlviv@gmail.com> | 2018-09-12 18:53:53 +0300 |
commit | 59cae0755eea9aa7be4d746427b007f61f33c4ec (patch) | |
tree | eed48bcecd055687714683774b63a17652be3bd8 | |
parent | d1a14865e055091fc2a50ddfd7e9e206152b1095 (diff) | |
download | rails-59cae0755eea9aa7be4d746427b007f61f33c4ec.tar.gz rails-59cae0755eea9aa7be4d746427b007f61f33c4ec.tar.bz2 rails-59cae0755eea9aa7be4d746427b007f61f33c4ec.zip |
Add mention about `ActiveRecord::Base::filter_attributes` to the changelog entry
Also remove `# :nodoc:` for `ActiveRecord::Core::ClassMethods` in order
to show non-nodoc methods in that module on the api docs http://edgeapi.rubyonrails.org
-rw-r--r-- | activerecord/CHANGELOG.md | 9 | ||||
-rw-r--r-- | activerecord/lib/active_record/core.rb | 12 |
2 files changed, 13 insertions, 8 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 336946b756..0bb5dfe313 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -9,11 +9,16 @@ *Darwin Wu* -* Configuration item `config.filter_parameters` could also filter out sensitive value of database column when call `#inspect`. +* Configuration item `config.filter_parameters` could also filter out + sensitive values of database columns when call `#inspect`. + We also added `ActiveRecord::Base::filter_attributes`/`=` in order to + specify sensitive attributes to specific model. ``` Rails.application.config.filter_parameters += [:credit_card_number] - Account.last.inspect # => #<Account id: 123, credit_card_number: [FILTERED] ...> + Account.last.inspect # => #<Account id: 123, name: "DHH", credit_card_number: [FILTERED] ...> + SecureAccount.filter_attributes += [:name] + SecureAccount.last.inspect # => #<SecureAccount id: 42, name: [FILTERED], credit_card_number: [FILTERED] ...> ``` *Zhang Kang* diff --git a/activerecord/lib/active_record/core.rb b/activerecord/lib/active_record/core.rb index 0002941ff6..392602bc0f 100644 --- a/activerecord/lib/active_record/core.rb +++ b/activerecord/lib/active_record/core.rb @@ -139,7 +139,7 @@ module ActiveRecord self.default_connection_handler = ConnectionAdapters::ConnectionHandler.new end - module ClassMethods # :nodoc: + module ClassMethods def initialize_find_by_cache # :nodoc: @find_by_statement_cache = { true => Concurrent::Map.new, false => Concurrent::Map.new } end @@ -216,7 +216,7 @@ module ActiveRecord generated_association_methods end - def generated_association_methods + def generated_association_methods # :nodoc: @generated_association_methods ||= begin mod = const_set(:GeneratedAssociationMethods, Module.new) private_constant :GeneratedAssociationMethods @@ -226,7 +226,7 @@ module ActiveRecord end end - # Returns columns which shouldn't be exposed while calling #inspect. + # Returns columns which shouldn't be exposed while calling +#inspect+. def filter_attributes if defined?(@filter_attributes) @filter_attributes @@ -235,13 +235,13 @@ module ActiveRecord end end - # Specifies columns which shouldn't be exposed while calling #inspect. + # Specifies columns which shouldn't be exposed while calling +#inspect+. def filter_attributes=(attributes_names) @filter_attributes = attributes_names.map(&:to_s).to_set end # Returns a string like 'Post(id:integer, title:string, body:text)' - def inspect + def inspect # :nodoc: if self == Base super elsif abstract_class? @@ -257,7 +257,7 @@ module ActiveRecord end # Overwrite the default class equality method to provide support for decorated models. - def ===(object) + def ===(object) # :nodoc: object.is_a?(self) end |