- 23 12月, 2014 28 次提交
-
-
由 Yves Senn 提交于
-
由 Yves Senn 提交于
Fixing numeric attrs when set to same negative value
-
由 Yves Senn 提交于
fix typo in nodoc [ci skip]
-
由 yuuji.yaginuma 提交于
-
由 Daniel Fox 提交于
This bug occurs when an attribute of an ActiveRecord model is an ActiveRecord::Type::Integer type or a ActiveRecord::Type::Decimal type (or any other type that includes the ActiveRecord::Type::Numeric module. When the value of the attribute is negative and is set to the same negative value, it is marked as changed. Take the following example of a Person model with the integer attribute age: class Person < ActiveRecord::Base # age :integer(4) end The following will produce the error: person = Person.new(age: -1) person.age = -1 person.changes => { "age" => [-1, -1] } person.age_changed? => true The problematic line is here: module ActiveRecord module Type module Numeric ... def non_numeric_string?(value) # 'wibble'.to_i will give zero, we want to make sure # that we aren't marking int zero to string zero as # changed. value.to_s !~ /\A\d+\.?\d*\z/ end end end end The regex match doesn't accept numbers with a leading '-'.
-
由 Sean Griffin 提交于
Describe gotcha for 'status' option [ci skip]
-
由 J Connolly 提交于
-
由 Sean Griffin 提交于
Better tests for AV::RecordIdentifier
-
由 claudiob 提交于
This commit intends to clarify the scope of ActionView::RecordIdentifier methods `dom_id` and `dom_class`. Most of the current documentation comes from da257eb8 (7 years ago) when the decoupling of ActionView, ActiveRecord and ActiveModel was not a concern. Since then, steps have been taken to reach such decoupling. Therefore I think it's important to show that ActionView::RecordIdentifier **does not strictly depend on the ActiveRecord API**: any class `Post` implementing `post.to_key` and `post.model_name.param_key` will work. This commit adds a test to prove that ActionView::RecordIdentifier methods can also be used on objects that do not subclass ActiveRecord::Base.
-
由 Sean Griffin 提交于
Do not use line breaks on notes [ci skip]
-
由 Sean Griffin 提交于
`ActiveRecord::Base#[]` has overhead that was introduced in 4.2. The `foo["id"]` working with PKs other than ID isn't really a case that we want to support publicly, but deprecating was painful enough that we avoid it. `_read_attribute` was introduced as the faster alternative for use internally. By using that, we can save a lot of overhead. We also save some overhead by reading the attribute one fewer times in `stale_state`. Fixes #18151
-
由 Sean Griffin 提交于
If there is a method defined such as `find_and_do_stuff(id)`, which then gets called on an association, we will perform statement caching and the parent ID will not change on subsequent calls. Fixes #18117
-
由 Sean Griffin 提交于
Calling `changed_attributes` will ultimately check if every mutable attribute has changed in place. Since this gets called whenever an attribute is assigned, it's extremely slow. Instead, we can avoid this calculation until we actually need it. Fixes #18029
-
由 Sean Griffin 提交于
PG will warn without it, but mysql2 errors out.
-
由 Sean Griffin 提交于
-
由 Sean Griffin 提交于
Changes `rails g model Post user:references` from def change create_table :posts do |t| t.references :user, index: true end add_foreign_key :posts, :users end to def change create_table :posts do |t| t.references :user, index: true, foreign_key: true end end Changes `rails g migration add_user_to_posts user:references` from def change add_reference :posts, :users, index: true add_foreign_key :posts, :users end to def change add_reference :posts, :users, index: true, foreign_key: true end
-
由 Sean Griffin 提交于
This has the same comments as 9af90ffa00ba35bdee888e3e1ab775ba0bdbe72c, however it affects the `add_reference` method, and `t.references` in the context of a `change_table` block. There is a lot of duplication of code between creating and updating tables. We should re-evaluate the structure of this code from a high level so changes like this don't need to be made in two places. (Note to self)
-
由 Sean Griffin 提交于
While we still aren't accepting PRs that only make changes like this, it's fine when we're actively working on a method if it makes our lives easier.
-
由 Sean Griffin 提交于
Rather than having to do: create_table :posts do |t| t.references :user end add_foreign_key :posts, :users You can instead do: create_table :posts do |t| t.references :user, foreign_key: true end Similar to the `index` option, you can also pass a hash. This will be passed as the options to `add_foreign_key`. e.g.: create_table :posts do |t| t.references :user, foreign_key: { primary_key: :other_id } end is equivalent to create_table :posts do |t| t.references :user end add_foreign_key :posts, :users, primary_key: :other_id
-
由 Sean Griffin 提交于
While we aren't taking PRs with these kinds of changes just yet, they are fine if we're actively working on the method and it makes things easier.
-
由 Sean Griffin 提交于
The changes in #18149 added tests for the app generator, but only fixed it for the plugin generator (I should have let CI finish though I think it would have failed as an allowed failure).
-
由 Sean Griffin 提交于
Only add debugger/byebug if on MRI
-
由 Arthur Neves 提交于
-
由 Sean Griffin 提交于
If the test is interrupted in a way that the teardown block fails to run, the tests will fail to run until the table is removed manually without this option.
-
由 Andrey Nering 提交于
References #18138
-
由 Sean Griffin 提交于
PG doesn't register it's types using the `int(4)` format that others do. As such, if we alias `int8` to the other integer types, the range information is lost. This is fixed by simply registering it separately. The other option (which I specifically chose to avoid) is to pass the information of the original type that was being aliased as an argument. I'd rather avoid that, since an alias should truly be treated the same. If we need different behavior for a different type, we should explicitly register it with that, and not have a conditional based on aliasing. Fixes #18144 [Sean Griffin & ysbaddaden]
-
由 Zachary Scott 提交于
-
由 Zachary Scott 提交于
-
- 22 12月, 2014 12 次提交
-
-
由 Arthur Neves 提交于
-
由 Arthur Neves 提交于
-
由 Zachary Scott 提交于
-
由 Zachary Scott 提交于
-
由 Zachary Scott 提交于
-
由 Zachary Scott 提交于
-
由 Yves Senn 提交于
This is a doc follow-up to #17739. /cc @zzak
-
由 Sean Griffin 提交于
Fixes #18122
-
由 Zachary Scott 提交于
Fix inaccurate docs in active_model errors [ci skip]
-
由 Zachary Scott 提交于
-
由 Zachary Scott 提交于
Add note about Ajax and CSRF-Token [ci skip]
-
由 Zachary Scott 提交于
Clarify ActiveRecord testing guidelines [ci skip]
-