mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
b05819fd28
[ci skip]
123 lines
4.2 KiB
Markdown
123 lines
4.2 KiB
Markdown
## Rails 4.0.0 (unreleased) ##
|
|
|
|
* Add `ActiveModel::Validations::AbsenceValidator`, a validator to check the
|
|
absence of attributes.
|
|
|
|
class Person
|
|
include ActiveModel::Validations
|
|
|
|
attr_accessor :first_name
|
|
validates_absence_of :first_name
|
|
end
|
|
|
|
person = Person.new
|
|
person.first_name = "John"
|
|
person.valid?
|
|
# => false
|
|
person.errors.messages
|
|
# => {:first_name=>["must be blank"]}
|
|
|
|
*Roberto Vasquez Angel*
|
|
|
|
* `[attribute]_changed?` now returns `false` after a call to `reset_[attribute]!`
|
|
|
|
*Renato Mascarenhas*
|
|
|
|
* Observers was extracted from Active Model as `rails-observers` gem.
|
|
|
|
*Rafael Mendonça França*
|
|
|
|
* Specify type of singular association during serialization *Steve Klabnik*
|
|
|
|
* Fixed length validator to correctly handle nil values. Fixes #7180.
|
|
|
|
*Michal Zima*
|
|
|
|
* Removed dispensable `require` statements. Make sure to require `active_model` before requiring
|
|
individual parts of the framework.
|
|
|
|
*Yves Senn*
|
|
|
|
* Use BCrypt's `MIN_COST` in the test environment for speedier tests when using `has_secure_pasword`.
|
|
|
|
*Brian Cardarella + Jeremy Kemper + Trevor Turk*
|
|
|
|
* Add `ActiveModel::ForbiddenAttributesProtection`, a simple module to
|
|
protect attributes from mass assignment when non-permitted attributes are passed.
|
|
|
|
*DHH + Guillermo Iguaran*
|
|
|
|
* `ActiveModel::MassAssignmentSecurity` has been extracted from Active Model and the
|
|
`protected_attributes` gem should be added to Gemfile in order to use
|
|
`attr_accessible` and `attr_protected` macros in your models.
|
|
|
|
*Guillermo Iguaran*
|
|
|
|
* Due to a change in builder, nil values and empty strings now generates
|
|
closed tags, so instead of this:
|
|
|
|
<pseudonyms nil=\"true\"></pseudonyms>
|
|
|
|
It generates this:
|
|
|
|
<pseudonyms nil=\"true\"/>
|
|
|
|
*Carlos Antonio da Silva*
|
|
|
|
* Changed inclusion and exclusion validators to accept a symbol for `:in` option.
|
|
|
|
This allows to use dynamic inclusion/exclusion values using methods, besides the current lambda/proc support.
|
|
|
|
*Gabriel Sobrinho*
|
|
|
|
* `AM::Validation#validates` ability to pass custom exception to `:strict` option.
|
|
|
|
*Bogdan Gusiev*
|
|
|
|
* Changed `ActiveModel::Serializers::Xml::Serializer#add_associations` to by default
|
|
propagate `:skip_types, :dasherize, :camelize` keys to included associations.
|
|
It can be overriden on each association by explicitly specifying the option on one
|
|
or more associations
|
|
|
|
*Anthony Alberto*
|
|
|
|
* 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*
|
|
|
|
* Passing false hash values to `validates` will no longer enable the corresponding validators *Steve Purcell*
|
|
|
|
* `ConfirmationValidator` error messages will attach to `:#{attribute}_confirmation` instead of `attribute` *Brian Cardarella*
|
|
|
|
* Added ActiveModel::Model, a mixin to make Ruby objects work with AP out of box *Guillermo Iguaran*
|
|
|
|
* `AM::Errors#to_json`: support `:full_messages` parameter *Bogdan Gusiev*
|
|
|
|
* Trim down Active Model API by removing `valid?` and `errors.full_messages` *José Valim*
|
|
|
|
* 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 *Jan Berdajs + Egor Homakov*
|
|
|
|
Please check [3-2-stable](https://github.com/rails/rails/blob/3-2-stable/activemodel/CHANGELOG.md) for previous changes.
|