| 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, 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)
|
|\ \
| | |
| | | |
a tiny fix in the generated README
|
|/ / |
|
|\ \
| | |
| | | |
update directory tree in the generated README
|
| | | |
|
| | |
| | |
| | |
| | | |
[ci skip]
|
|\ \ \
| | | |
| | | | |
Fix missing spaces in method definitions
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Adding a usage message to install.rb script
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, invoking the install.rb script with zero arguments
caused it to attempt to install all gems without a version
suffix, which would fail spectacularly. Failing gracefully with
a usage message is more helpful to a first-time user.
|
|\ \ \ \
| |/ / /
|/| | | |
A small fix for an AR test case
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Remove a useless TODO comment
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Rename update_attributes method to update
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
update_attributes
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |_|_|/
|/| | | |
Typo and grammar fixes in the ActionPack CHANGELOG
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix env toggling, improve error page styling
|
| | | | |
|
|\ \ \ \
| |_|_|/
|/| | | |
Fix typo on form_tag_helper.rb [ci skip]
|
|/ / /
| | |
| | |
| | | |
The inline documentantion had a typo that was somewhat confusing.
|
|\ \ \
| | | |
| | | | |
test PATCH method for update action in generated scaffold controller test rather than PUT
|
| | | |
| | | |
| | | |
| | | | |
rather than PUT
|
|\ \ \ \
| | | | |
| | | | | |
Refactor Routing::Mapper#matches?
|
| | |/ /
| |/| | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Pass in `--local` when doing `gem install` for local gems. [ci skip]
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Explain the possible IP precautions
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Restore original remote_ip algorithm.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Proxy servers add X-Forwarded-For headers, resulting in a list of IPs. We
remove trusted IP values, and then take the last given value, assuming that
it is the most likely to be the correct, unfaked value. See [1] for a very
thorough discussion of why that is the best option we have at the moment.
[1]: http://blog.gingerlime.com/2012/rails-ip-spoofing-vulnerabilities-and-protection/
Fixes #7979
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Remove another unnecessary dup
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
parameters
Conflicts:
activerecord/lib/active_record/dynamic_matchers.rb
|
|\ \ \
| | | |
| | | | |
do not append a second slash when using `trailing_slash: true`
|
| |/ / |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix a number of validation/style errors
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* <pre> is not allowed to be nested inside of <p> elements in HTML
* Indentation of </p> doesn't match corresponding <p>
* <p> element not explicitly closed
* One more </div> than <div>
In each case, the template was fixed to match how a HTML5 parser would "see"
the resulting page.
|
| | | |
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
Remove unnecessary #dup
|