| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
| |
Assigning nil to a polymorphic belongs_to would nullify its _id field by
not its _type field.
Fixes failing test from c141dfc838a5dca9f197814410fa5d44c143129c.
Regression from 1678e959e973de32287b65c52ebc6cce87148951.
|
|\
| |
| | |
#none documentation updated [ci skip]
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This change was necessary because the whitelist wouldn't work.
It would be painful for users trying to update their applications.
This blacklist intent to prevent odd bugs and confusion in code that call mutator
methods directely on the `Relation`.
|
| |
| |
| |
| | |
Blast from the past, MySQL 4 era, when the password hashing style changed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ / |
|
| | |
|
| |
| |
| |
| |
| | |
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
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
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
|
|/ /
| |
| |
| | |
Since MySQL 5.7.3 m13 does now allow primary key column is null.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|