| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the tests if I were to call `post.categorizations.to_a` and then later call
`post.categorizations.to_a` expecting to have different results the 2 queries
would be the same because of the caching involved in
`@association_scope_cache`. The chain gets cached and the queries will
be the same even if they are not supposed to be (i.e. testing an order
dependent scoping issue).
I found this issue because I was working on a bug with cached scoped
in hm:t and hm:t polymorphic relationships but `capture_sql` was
outputting the wrong SQL to write a good test.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Remove gem check in guides/rails_guides.rb
Conflicts:
guides/rails_guides.rb
|
| | |
| | |
| | |
| | |
| | | |
Now rails/Gemfile includes nokogiri and redcarpet,
so remove gem check from guides/rails_guides.rb
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This logic was just doing duplicated work, since the button_to helper
relies on tag/content_tag to generate the button html, which already
handles all boolean attributes it knows about.
The code dates back to 2005: 43c470fae468ef63e0d5c3dc1e202925685fd47b.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Reuse the CollectionAssociation#reader proxy cache if the foreign key is present from the start.
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
present from the start.
When a new record has the necessary information prior to save, we can
avoid busting the cache.
We could simply clear the @proxy on #reset or #reset_scope, but that
would clear the cache more often than necessary.
|
|\ \ \ \
| | | | |
| | | | | |
Make example code consistent for better understanding. [ci skip]
|
| | | | | |
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
Update old link in pessimistic.rb comments [ci skip]
|
|/ / / /
| | | |
| | | | |
Update link in comments to point to latest MySQL production version documentation. See here for reference: http://dev.mysql.com/doc/refman/5.0/en/choosing-version.html
|
|\ \ \ \
| |/ / /
|/| | | |
Fix NullRelation.update_all and .exists? signature to match the same on Relation
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix wrong model name for 'Articles', It should be 'Article' [ci skip]
|
|/ / /
| | |
| | |
| | | |
- Also changed 'a' to 'an' for 'Article' word.
|
|\ \ \
| | | |
| | | | |
Compare content_type with Mime::XML instead of regexp
|
| |/ /
| | |
| | |
| | |
| | | |
Regexp is broken for both content types including charsets and for
integration tests, where the content_type is a Mime::Type and not String
|
|\ \ \
| | | |
| | | | |
Skip the `:race_condition_ttl` branch if the option is 0 or nil.
|
| | | |
| | | |
| | | |
| | | | |
an issue with the redis cache, where this code will sometimes throw an error out of SETEX when passing 0 as the `expires_at`.
|
|\ \ \ \
| | | | |
| | | | | |
Add config.active_record.dump_schemas.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes db:structure:dump when using schema_search_path and PostgreSQL
extensions.
Closes #17157.
|
|\ \ \ \
| | | | |
| | | | | |
Drop `references_eager_loaded_tables?` test from `has_include?`
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It is redundant with tests in `eager_loading?`, but for the difference
between `includes_values.present?` and `includes_values.any?`, which
is a difference without a distinction because `false` has no meaning
for `includes`.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Fix deprecation warning in rails_info_controller tests
|
|/ / / /
| | | |
| | | |
| | | | |
Use keyword arguments in request methods
|
|\ \ \ \
| | | | |
| | | | | |
Remove unused variable in activerecord reflection_test.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
[ci skip] reflection doc fix about hierarchy
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Materialize subqueries by adding `DISTINCT` to suport MySQL 5.7.6 and later
|
| | | | |
| | | | |
| | | | |
| | | | | |
to support MySQL 5.7.6 `optimizer_switch='derived_merge=on'`
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
brandonweiss/better-name-for-transactional-fixtures
Renaming transactional fixtures to transactional tests
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I’m renaming all instances of `use_transcational_fixtures` to
`use_transactional_tests` and “transactional fixtures” to
“transactional tests”.
I’m deprecating `use_transactional_fixtures=`. So anyone who is
explicitly setting this will get a warning telling them to use
`use_transactional_tests=` instead.
I’m maintaining backwards compatibility—both forms will work.
`use_transactional_tests` will check to see if
`use_transactional_fixtures` is set and use that, otherwise it will use
itself. But because `use_transactional_tests` is a class attribute
(created with `class_attribute`) this requires a little bit of hoop
jumping. The writer method that `class_attribute` generates defines a
new reader method that return the value being set. Which means we can’t
set the default of `true` using `use_transactional_tests=` as was done
previously because that won’t take into account anyone using
`use_transactional_fixtures`. Instead I defined the reader method
manually and it checks `use_transactional_fixtures`. If it was set then
it should be used, otherwise it should return the default, which is
`true`. If someone uses `use_transactional_tests=` then it will
overwrite the backwards-compatible method with whatever they set.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Move Adapter to private constant
|
| | |/ /
| |/| | |
|
|\ \ \ \
| |/ / /
|/| | | |
Adds more clarity on how to use custom rake tasks with arguments passed to it [ci skip]
|
|/ / /
| | |
| | |
| | | |
[ci skip]
|
|\ \ \
| | | |
| | | | |
[skip ci] Fix typos in guides
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
[skip ci] Fix typo in actionmailer documentation
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
[ci skip] Fix dead link
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
getting_started.html#the-mvc-architecture is lost by this commit
2f06c94e38a116fdfa43d7b7117e6bf911a0bff5 (Mar 14 2012 !).
So replace it with wikipedia link.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If there was a polymorphic hm:t association with a scope AND second
non-scoped hm:t association on a model the polymorphic scope would leak
through into the call for the non-polymorhic hm:t association.
This would only break if `hotel.drink_designers` was called before
`hotel.recipes`. If `hotel.recipes` was called first there would be
no problem with the SQL.
Before (employable_type should not be here):
```
SELECT COUNT(*) FROM "drink_designers" INNER JOIN "chefs" ON
"drink_designers"."id" = "chefs"."employable_id" INNER JOIN
"departments" ON "chefs"."department_id" = "departments"."id" WHERE
"departments"."hotel_id" = ? AND "chefs"."employable_type" = ?
[["hotel_id", 1], ["employable_type", "DrinkDesigner"]]
```
After:
```
SELECT COUNT(*) FROM "recipes" INNER JOIN "chefs" ON "recipes"."chef_id"
= "chefs"."id" INNER JOIN "departments" ON "chefs"."department_id" =
"departments"."id" WHERE "departments"."hotel_id" = ? [["hotel_id", 1]]
```
From the SQL you can see that `employable_type` was leaking through when
calling recipes. The solution is to dup the chain of the polymorphic
association so it doesn't get cached. Additionally, this follows
`scope_chain` which dup's the `source_reflection`'s `scope_chain`.
This required another model/table/relationship because the leak only
happens on a hm:t polymorphic that's called before another hm:t on the
same model.
I am specifically testing the SQL here instead of the number of records
becasue the test could pass if there was 1 drink designer recipe for the
drink designer chef even though the `employable_type` was leaking through.
This needs to specifically check that `employable_type` is not in the SQL
statement.
|
|\ \ \
| | | |
| | | | |
add mailer suffix to comments for email previews
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
[ci skip]Doc fix about association hierarchy
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Cleaning actionview tests
|
| | | | |
|
| | | | |
|