| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit fixes a bug introduced in 96a13fc7 which breaks behaviour of
integer fields in 3.2.8.
In 3.2.8, setting the value of an integer field to a non-integer (eg.
Array, Hash, etc.) would default to 1 (true) :
# 3.2.8
p = Post.new
p.category_id = [ 1, 2 ]
p.category_id # => 1
p.category_id = { 3 => 4 }
p.category_id # => 1
In 3.2.9 and above, this will raise a NoMethodError :
# 3.2.9
p = Post.new
p.category_id = [ 1, 2 ]
NoMethodError: undefined method `to_i' for [1, 2]:Array
Whilst at first blush this appear to be sensible, it combines in bad
ways with scoping.
For example, it is common to use scopes to control access to data :
@collection = Posts.where(:category_id => [ 1, 2 ])
@new_post = @collection.new
In 3.2.8, this would work as expected, creating a new Post object
(albeit with @new_post.category_id = 1). However, in 3.2.9 this will
cause the NoMethodError to be raised as above.
It is difficult to avoid triggering this error without descoping before
calling .new, breaking any apps running on 3.2.8 that rely on this
behaviour.
This patch deviates from 3.2.8 in that it does not retain the somewhat
spurious behaviour of setting the attribute to 1. Instead, it explicitly
sets these invalid values to nil :
p = Post.new
p.category_id = [ 1, 2 ]
p.category_id # => nil
This also fixes the situation where a scope using an array will
"pollute" any newly instantiated records.
@new_post = @collection.new
@new_post.category_id # => nil
Finally, 3.2.8 exhibited a behaviour where setting an object to an
integer field caused it to be coerced to "1". This has not been
retained, as it is spurious and surprising in the same way that setting
Arrays and Heshes was :
c = Category.find(6)
p = Post.new
# 3.2.8
p.category_id = c
p.category_id # => 1
# This patch
p.category_id = c
p.category_id # => nil
This commit includes explicit test cases that expose the original issue
with calling new on a scope that uses an Array. As this is a common
situation, an explicit test case is the best way to prevent regressions
in the future.
It also updates and separates existing tests to be explicit about the
situation that is being tested (eg. AR objects vs. other objects vs.
non-integers)
|
|\
| |
| |
| |
| | |
update directory tree in the generated README in Rails 3.2
[ci skip]
|
|/
|
|
| |
[ci skip]
|
|\
| |
| | |
Merged latest released tag (v3.2.10) into the stable branch (3-2-stable)
|
| |\
| | |
| | |
| | | |
Latest released tag was not fully merged into the stable branch (missed version bumping)
|
| | | |
|
|/ /
| |
| |
| | |
Fix typo on form_tag_helper.rb [ci skip]
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
Backport #8701, do not append a second slash with `trailing_slash: true`
Closes #8700
|
|/ / |
|
| |
| |
| |
| | |
Fix format and wrong changelog entry
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 3-2-stable:
fix block.arity raise nil error when not given a block to "content_tag_for"
removes the Ajax on Rails early draft
Revert "Merge pull request #8665 from senny/8661_should_not_append_charset_if_already_present"
backport #8662, charset should not be appended for `head` responses
Revert "Fix `validates_presence_of` with `:allow_nil` or `:allow_blank` options."
Fix `validates_presence_of` with `:allow_nil` or `:allow_blank` options.
backport #8616, quote column names in generated fixture files
|
| |\ \
| | | |
| | | | |
fix block.arity will raise nil error
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
There was a few attempts at writing this guide, but we
never passed from the work in progress stage. In spite
of not being included in the table of contents, this
draft was still indexed by bots and showed up in searches.
Steve Klabnik has written "Working with JavaScript in Rails"
which is going to be released with Rails 4. So better get
rid of this altogether.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
senny/8661_should_not_append_charset_if_already_present"
This reverts commit e48dc194231830f42f179704596b88215f062c23, reversing
changes made to d38c8caa48a732d41c7402a5e71deece4e313559.
|
| |\ \ \
| | |/ /
| |/| |
| | | |
| | | | |
senny/8661_should_not_append_charset_if_already_present
backport #8662, charset should not be appended for `head` responses
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
1) Failure:
test_head_created_with_image_png_content_type(RenderTest) [test/controller/render_test.rb:1238]:
Expected: "image/png"
Actual: "image/png; charset=utf-8"
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
options."
This reverts commit 93366c7c913bf0883f140fa782d3e198593477be.
REASON: This is backward incompatible. Also this behavior is documented
on the guides.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fix #8621
[Colin Kelley + Rafael Mendonça França]
|
| |\ \
| | | |
| | | | |
backport #8616, quote column names in generated fixture files
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
railties/CHANGELOG.md
railties/lib/rails/generators/test_unit/model/model_generator.rb
railties/lib/rails/generators/test_unit/model/templates/fixtures.yml
railties/test/generators/model_generator_test.rb
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 3-2-sec:
CVE-2012-5664 options hashes should only be extracted if there are extra parameters
updating changelog
updating the changelogs
updating the changelog for the CVE
Add release date of Rails 3.2.9 to documentation
Conflicts:
actionmailer/CHANGELOG.md
actionpack/CHANGELOG.md
activemodel/CHANGELOG.md
activerecord/CHANGELOG.md
activeresource/CHANGELOG.md
activesupport/CHANGELOG.md
railties/CHANGELOG.md
|
| |
| |
| |
| | |
parameters
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
actionpack/CHANGELOG.md
activerecord/CHANGELOG.md
activesupport/CHANGELOG.md
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix #8575
Conflicts:
activerecord/CHANGELOG.md
activerecord/lib/active_record/attribute_methods/serialization.rb
activerecord/test/cases/serialized_attribute_test.rb
activerecord/test/models/person.rb
|
|\ \
| | |
| | | |
Backport #8522, Keep index names when using with sqlite3
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
activerecord/CHANGELOG.md
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
activerecord/test/cases/migration/rename_column_test.rb
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The encoding scheme (e.g. ☠ -> "\u2620") was broken for characters
not in the Basic Multilingual Plane. It is possible to escape them
for json using the weird encoding scheme of a twelve-character
sequence representing the UTF-16 surrogate pair (e.g. '𠜎' ->
"\u270e\u263a") but this wasn't properly handled in the escaping code.
Since raw UTF-8 is allowed in json, it was decided to simply pass
through the raw bytes rather than attempt to escape them.
Backport of https://github.com/zbskii/rails/commit/9ace3a8820a5270f9b3f37b593f8bbea3e940f73
Conflicts:
activesupport/CHANGELOG.md
activesupport/lib/active_support/json/encoding.rb
activesupport/test/json/encoding_test.rb
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Clear url helper methods when routes are reloaded by removing the
methods explicitly rather than just clearing the module because it
didn't work properly and could be the source of a memory leak.
Closes #8488.
|
|\ \
| | |
| | | |
Backport of #8500, recognize migrations, in folders containing numbers and 'rb'.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Backport of #8500
Closes #8492
Conflicts:
activerecord/test/cases/migrator_test.rb
|
| |
| |
| |
| |
| |
| | |
Fix rewinding in ActionDispatch::Request#raw_post
Conflicts:
actionpack/CHANGELOG.md
|
| | |
|
| |
| |
| |
| |
| |
| | |
Ruby 1.8 does not support this format in Time, so the format will only
be added to the available date formats on Ruby 1.9. Changelog entry was
changed to explain that as well.
|
| |
| |
| |
| |
| |
| | |
It fails with Identity Map because the find call returns the same
object, so the "content" attribute that we expect to raise "missing
attribute" is actually present.
|
| | |
|
| |
| |
| |
| |
| | |
Backport test to ensure there won't be regressions.
The issue only happens on master at the moment.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This can be done using the class attribute cache_timestamp_format
Closes #8195
|
| | |
|
| |
| |
| |
| |
| |
| | |
Increase numeric-timestamp precision to nanoseconds
Conflicts:
activesupport/lib/active_support/core_ext/time/conversions.rb
|
| | |
|
| | |
|