2012-03-08 15:52:17 -05:00
## Rails 4.0.0 (unreleased) ##
change AMS::JSON.include_root_in_json default value to false
Changes:
* Update `include_root_in_json` default value to false for default value
to false for `ActiveModel::Serializers::JSON`.
* Remove unnecessary change to include_root_in_json option in
wrap_parameters template.
* Update `as_json` documentation.
* Fix JSONSerialization tests.
Problem:
It's confusing that AM serializers behave differently from AR,
even when AR objects include AM serializers module.
class User < ActiveRecord::Base; end
class Person
include ActiveModel::Model
include ActiveModel::AttributeMethods
include ActiveModel::Serializers::JSON
attr_accessor :name, :age
def attributes
instance_values
end
end
user.as_json
=> {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true}
# root is not included
person.as_json
=> {"person"=>{"name"=>"Francesco", "age"=>22}}
# root is included
ActiveRecord::Base.include_root_in_json
=> false
Person.include_root_in_json
=> true
# different default values for include_root_in_json
Proposal:
Change the default value of AM serializers to false, update
the misleading documentation and remove unnecessary change
to false of include_root_in_json option with AR objects.
class User < ActiveRecord::Base; end
class Person
include ActiveModel::Model
include ActiveModel::AttributeMethods
include ActiveModel::Serializers::JSON
attr_accessor :name, :age
def attributes
instance_values
end
end
user.as_json
=> {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true}
# root is not included
person.as_json
=> {"name"=>"Francesco", "age"=>22}
# root is not included
ActiveRecord::Base.include_root_in_json
=> false
Person.include_root_in_json
=> false
# same behaviour, more consistent
Fixes #6578.
2012-06-06 02:11:39 -04:00
* Changed `AM::Serializers::JSON.include_root_in_json' default value to false.
Now, AM Serializers and AR objects have the same default behaviour. Fixes #6578 .
class User < ActiveRecord::Base ; end
class Person
include ActiveModel::Model
include ActiveModel::AttributeMethods
include ActiveModel::Serializers::JSON
attr_accessor :name, :age
def attributes
instance_values
end
end
user.as_json
=> {"id"=>1, "name"=>"Konata Izumi", "age"=>16, "awesome"=>true}
# root is not included
person.as_json
=> {"name"=>"Francesco", "age"=>22}
# root is not included
*Francesco Rodriguez*
Don't enable validations when passing false hash values to ActiveModel.validates
Passing a falsey option value for a validator currently causes that validator to
be enabled, just like "true":
ActiveModel.validates :foo, :presence => false
This is rather counterintuitive, and makes it inconvenient to wrap `validates` in
methods which may conditionally enable different validators.
As an example, one is currently forced to write:
def has_slug(source_field, options={:unique => true})
slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? }
before_validation slugger
validations = { :presence => true, :slug => true }
if options[:unique]
validations[:uniqueness] = true
end
validates :slug, validations
end
because the following reasonable-looking alternative fails to work as expected:
def has_slug(source_field, options={:unique => true})
slugger = Proc.new { |r| r[:slug] = self.class.sluggify(r[source_field]) if r[:slug].blank? }
before_validation slugger
validates :slug, :presence => true, :slug => true, :uniqueness => options[:unique]
end
(This commit includes a test, and all activemodel and activerecord tests pass as before.)
2012-05-28 09:39:09 -04:00
* Passing false hash values to `validates` will no longer enable the corresponding validators *Steve Purcell*
2012-04-23 21:30:24 -04:00
* `ConfirmationValidator` error messages will attach to `:#{attribute}_confirmation` instead of `attribute` *Brian Cardarella*
2012-03-02 23:20:17 -05:00
* Added ActiveModel::Model, a mixin to make Ruby objects work with AP out of box *Guillermo Iguaran*
2012-02-17 05:12:10 -05:00
* `AM::Errors#to_json` : support `:full_messages` parameter *Bogdan Gusiev*
2012-02-07 17:10:14 -05:00
* Trim down Active Model API by removing `valid?` and `errors.full_messages` *José Valim*
2012-06-07 18:08:51 -04:00
* When `^` or `$` are used in the regular expression provided to `validates_format_of` and the :multiline option is not set to true, an exception will be raised. This is to prevent security vulnerabilities when using `validates_format_of` . The problem is described in detail in the Rails security guide.
## Rails 3.2.6 (Jun 12, 2012) ##
* No changes.
2012-03-08 22:01:34 -05:00
2012-06-01 10:41:30 -04:00
## Rails 3.2.5 (Jun 1, 2012) ##
* No changes.
## Rails 3.2.4 (May 31, 2012) ##
* No changes.
## Rails 3.2.3 (March 30, 2012) ##
* No changes.
2012-03-08 22:01:34 -05:00
## Rails 3.2.2 (March 1, 2012) ##
* No changes.
2011-12-18 16:42:36 -05:00
## Rails 3.2.1 (January 26, 2012) ##
* No changes.
2012-03-08 22:01:34 -05:00
2012-01-26 04:53:38 -05:00
## Rails 3.2.0 (January 20, 2012) ##
2011-11-25 04:49:54 -05:00
2011-11-29 15:10:33 -05:00
* Deprecated `define_attr_method` in `ActiveModel::AttributeMethods` , because this only existed to
support methods like `set_table_name` in Active Record, which are themselves being deprecated.
*Jon Leighton*
2011-11-25 04:49:54 -05:00
* Add ActiveModel::Errors#added? to check if a specific error has been added *Martin Svalin*
2011-11-04 08:55:17 -04:00
* Add ability to define strict validation(with :strict => true option) that always raises exception when fails *Bogdan Gusiev*
* Deprecate "Model.model_name.partial_path" in favor of "model.to_partial_path" *Grant Hutchins, Peter Jaros*
* Provide mass_assignment_sanitizer as an easy API to replace the sanitizer behavior. Also support both :logger (default) and :strict sanitizer behavior *Bogdan Gusiev*
2012-03-08 22:01:34 -05:00
2011-12-18 16:42:36 -05:00
## Rails 3.1.3 (November 20, 2011) ##
* No changes
2012-03-08 22:01:34 -05:00
2011-12-18 16:42:36 -05:00
## Rails 3.1.2 (November 18, 2011) ##
* No changes
2012-03-08 22:01:34 -05:00
2011-12-18 16:42:36 -05:00
## Rails 3.1.1 (October 7, 2011) ##
* Remove hard dependency on bcrypt-ruby to avoid make ActiveModel dependent on a binary library.
You must add the gem explicitly to your Gemfile if you want use ActiveModel::SecurePassword:
gem 'bcrypt-ruby', '~> 3.0.0'
See GH #2687 . *Guillermo Iguaran*
2012-03-08 22:01:34 -05:00
2011-11-04 08:55:17 -04:00
## Rails 3.1.0 (August 30, 2011) ##
* Alternate I18n namespace lookup is no longer supported.
Instead of "activerecord.models.admins.post", do "activerecord.models.admins/post" instead *José Valim*
* attr_accessible and friends now accepts :as as option to specify a role *Josh Kalderimis*
* Add support for proc or lambda as an option for InclusionValidator,
ExclusionValidator, and FormatValidator *Prem Sichanugrist*
You can now supply Proc, lambda, or anything that respond to #call in those
validations, and it will be called with current record as an argument.
That given proc or lambda must returns an object which respond to #include ? for
InclusionValidator and ExclusionValidator, and returns a regular expression
object for FormatValidator.
* Added ActiveModel::SecurePassword to encapsulate dead-simple password usage with BCrypt encryption and salting *DHH*
* ActiveModel::AttributeMethods allows attributes to be defined on demand *Alexander Uvarov*
* Add support for selectively enabling/disabling observers *Myron Marston*
2012-03-01 14:20:03 -05:00
## Rails 3.0.12 (March 1, 2012) ##
2011-12-18 16:42:36 -05:00
* No changes.
## Rails 3.0.11 (November 18, 2011) ##
* No changes.
## Rails 3.0.10 (August 16, 2011) ##
* No changes.
## Rails 3.0.9 (June 16, 2011) ##
* No changes.
## Rails 3.0.8 (June 7, 2011) ##
* No changes.
2011-11-04 08:55:17 -04:00
## Rails 3.0.7 (April 18, 2011) ##
* No changes.
2011-12-18 16:42:36 -05:00
## Rails 3.0.6 (April 5, 2011) ##
2011-11-04 08:55:17 -04:00
* Fix when database column name has some symbolic characters (e.g. Oracle CASE# VARCHAR2(20)) #5818 #6850 *Robert Pankowecki, Santiago Pastorino*
* Fix length validation for fixnums #6556 *Andriy Tyurnikov*
* Fix i18n key collision with namespaced models #6448 *yves.senn*
## Rails 3.0.5 (February 26, 2011) ##
* No changes.
## Rails 3.0.4 (February 8, 2011) ##
* No changes.
## Rails 3.0.3 (November 16, 2010) ##
* No changes.
## Rails 3.0.2 (November 15, 2010) ##
* No changes
## Rails 3.0.1 (October 15, 2010) ##
* No Changes, just a version bump.
## Rails 3.0.0 (August 29, 2010) ##
* Added ActiveModel::MassAssignmentSecurity *Eric Chapweske, Josh Kalderimis*
* JSON supports a custom root option: to_json(:root => 'custom') #4515 *Jatinder Singh*
* #new_record ? and #destroyed ? were removed from ActiveModel::Lint. Use
persisted? instead. A model is persisted if it's not a new_record? and it was
not destroyed? *MG*
* Added validations reflection in ActiveModel::Validations *JV*
Model.validators
Model.validators_on(:field)
* #to_key was added to ActiveModel::Lint so we can generate DOM IDs for
AMo objects with composite keys *MG*
* ActiveModel::Observer#add_observer!
It has a custom hook to define after_find that should really be in a
ActiveRecord::Observer subclass:
def add_observer!(klass)
klass.add_observer(self)
klass.class_eval 'def after_find() end' unless klass.respond_to?(:after_find)
end
* Change the ActiveModel::Base.include_root_in_json default to true for Rails 3 *DHH*
* Add validates_format_of :without => /regexp/ option. #430 *Elliot Winkler, Peer Allan*
Example :
validates_format_of :subdomain, :without => /www|admin|mail/
* Introduce validates_with to encapsulate attribute validations in a class. #2630 *Jeff Dean*
* Extracted from Active Record and Active Resource.