- 04 1月, 2013 24 次提交
-
-
由 Rafael Mendonça França 提交于
-
由 Rafael Mendonça França 提交于
Fix undefined method `to_i' introduced in 3.2.9
-
由 Jason Stirk 提交于
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)
-
由 Rafael Mendonça França 提交于
a tiny fix in the generated README
-
由 Akira Matsuda 提交于
-
由 Guillermo Iguaran 提交于
update directory tree in the generated README
-
由 Rafael Mendonça França 提交于
[ci skip]
-
由 Akira Matsuda 提交于
-
由 Rafael Mendonça França 提交于
Fix missing spaces in method definitions
-
由 Robin Dupret 提交于
-
由 Rafael Mendonça França 提交于
Adding a usage message to install.rb script
-
由 Tim Raymond 提交于
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.
-
由 Rafael Mendonça França 提交于
A small fix for an AR test case
-
由 Akira Matsuda 提交于
-
由 Rafael Mendonça França 提交于
Remove a useless TODO comment
-
由 Robin Dupret 提交于
-
由 Guillermo Iguaran 提交于
Rename update_attributes method to update
-
-
-
-
-
-
由 Guillermo Iguaran 提交于
Typo and grammar fixes in the ActionPack CHANGELOG
-
由 Matt Bridges 提交于
-
- 03 1月, 2013 16 次提交
-
-
由 Guillermo Iguaran 提交于
Fix env toggling, improve error page styling
-
由 Gosha Arinich 提交于
-
由 Carlos Antonio da Silva 提交于
Fix typo on form_tag_helper.rb [ci skip]
-
The inline documentantion had a typo that was somewhat confusing.
-
由 Carlos Antonio da Silva 提交于
test PATCH method for update action in generated scaffold controller test rather than PUT
-
由 Carlos Antonio da Silva 提交于
Refactor Routing::Mapper#matches?
-
由 Carlos Antonio da Silva 提交于
Pass in `--local` when doing `gem install` for local gems. [ci skip]
-
由 Akira Matsuda 提交于
-
由 Gosha Arinich 提交于
-
由 Utkarsh Kukreti 提交于
-
由 Rafael Mendonça França 提交于
Explain the possible IP precautions
-
由 Andre Arko 提交于
-
由 Guillermo Iguaran 提交于
Restore original remote_ip algorithm.
-
由 Andre Arko 提交于
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
-
由 Carlos Antonio da Silva 提交于
-
由 Akira Matsuda 提交于
-