| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using the name of an association in `where` previously worked only
if the value was a single `ActiveRecrd::Base` object. e.g.
Post.where(author: Author.first)
Any other values, including `nil`, would cause invalid SQL to be
generated. This change supports arguments in the `where` query
conditions where the key is a `belongs_to` association name and the
value is `nil`, an `Array` of `ActiveRecord::Base` objects, or an
`ActiveRecord::Relation` object.
# Given the Post model
class Post < ActiveRecord::Base
belongs_to :author
end
# nil value finds records where the association is not set
Post.where(author: nil)
# SELECT "posts".* FROM "posts" WHERE "posts"."author_id" IS NULL
# Array values find records where the association foreign key
# matches the ids of the passed ActiveRecord models, resulting
# in the same query as Post.where(author_id: [1,2])
authors_array = [Author.find(1), Author.find(2)]
Post.where(author: authors_array)
# ActiveRecord::Relation values find records using the same
# query as Post.where(author_id: Author.where(last_name: "Emde"))
Post.where(author: Author.where(last_name: "Emde"))
Polymorphic `belongs_to` associations will continue to be handled
appropriately, with the polymorphic `association_type` field added
to the query to match the base class of the value. This feature
previously only worked when the value was a single `ActveRecord::Base`.
class Post < ActiveRecord::Base
belongs_to :author, polymorphic: true
end
Post.where(author: Author.where(last_name: "Emde"))
# Generates a query similar to:
Post.where(author_id: Author.where(last_name: "Emde"), author_type: "Author")
|
| |
|
|\
| |
| | |
Spelling and Grammar check [ci skip]
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
support creating temporary tables from queries
Conflicts:
activerecord/CHANGELOG.md
|
| | |
| | |
| | |
| | |
| | | |
also override drop_table in AbstractMySQLAdapter to properly drop
temporary tables without committing the transaction
|
| | | |
|
|/ /
| |
| |
| |
| |
| | |
db:test:clone and db:test:prepare use
ActiveRecord::Base. configurations, so we need to load the rails
environment, otherwise the config wont be in place.
|
| |
| |
| |
| | |
* interpreted as a argument prefix
|
|\ \
| | |
| | | |
Fix mysql to support duplicated column names
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will fix the [broken
test](https://github.com/rails/rails/commit/4a2650836680f51490e999c3c8441a2f9adff96e)
`test_with_limiting_with_custom_select`.
The query's result was built in a hash with column name as key, if the
result have a duplicated column name the last value was
overriding the first one.
|
| | | |
|
|/ / |
|
| |
| |
| |
| | |
won't last - aim to switch back to a blacklist for mutator methods.
|
|\ \
| | |
| | | |
Create a whitelist of methods to be delegated to Array.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This test was removed, since Relation will not delegate class
methods to Array.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| | |
calling replace_keys could possibly do a nil check twice, this commit
reduces it to once.
|
| |
| |
| |
| |
| | |
methods that call set_inverse_instance with a record will not have to
pay the cost of a nil check on every call
|
| | |
|
|\|
| |
| | |
Spelling and Grammar checks [ci skip]
|
| | |
|
|\ \
| |/
|/| |
Translate new unique constraint error message for sqlite >= 3.8.2
|
| | |
|
| |
| |
| |
| |
| | |
We can now make use of the existent #travel/#travel_to helper methods
added to AS test case and available in all tests.
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
laurocaetano/fix_dynamic_finder_with_reserved_words
Prevent invalid code when using dynamic finders with reserved ruby word.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The dynamic finder was creating the method signature with the parameters name,
which may have reserved words and this way creating invalid Ruby code.
Closes: #13261
Example:
# Before
Dog.find_by_alias('dog name')
# Was creating this method
def self.find_by_alias(alias, options = {})
# After
Dog.find_by_alias('dog name')
# Will create this method
def self.find_by_alias(_alias, options = {})
|
| | |
| | |
| | |
| | |
| | | |
activerecord-deprecated_finders expects the parameters denormalized in
its initialize method
|
| | |
| | |
| | |
| | | |
This is to get activerecord-deprecated_finders work again
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It is needed for activerecord-depecated_finders
This reverts commit dcff027a5242b20c0c90eb062dddb22ccf51aed9, reversing
changes made to 3a2093984ff49d86db1efeff0c7581e788ecfb9f.
|
|/ /
| |
| |
| | |
It is need in activerecord-deprecated_finders
|
|\ \
| | |
| | | |
Fix type cast on group sum with custom expression
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For PG adapters with custom expression and grouped result
of aggregate functions have not found correct column type
for it. Extract column type from query result.
Closes: #13230
|
| | | |
|
|\ \ \
| | | |
| | | | |
Support MySQL 5.7 explain
|
| |/ / |
|
|/ /
| |
| |
| | |
Since MySQL 5.7.3 m13 does now allow primary key column is null.
|
| | |
|
| | |
|