| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| | |
Fix some typos in AR- CHANGELOG, tests, method doc. fixed
|
| | |
|
|/ |
|
|
|
|
|
| |
if the association already holds that record in memory before checking
the database for the specified ids.
|
|
|
|
|
|
|
|
| |
Closes #8079.
I had to rework some of the tests because the mock allowed any arguments
for `connection.exeucte`. I think this is very dangerous as there could
anything be executed without the tests noticing it.
|
|
|
|
|
|
| |
"utf8mb4"
Please, see rationale in the included CHANGELOG patch.
|
| |
|
|
|
|
|
| |
the primary key on an association will make sure that the corresponding
counter on the association is changed properly. Fixes #9722.
|
|
|
|
| |
Closes #9712.
|
|
|
|
|
|
|
| |
We moved more and more away from passing options to finder / calculation
methods. The `:distinct` option in `#count` was one of the remaining places.
Since we can now combine `Relation#distinct` with `Relation#count` the option
is no longer necessary and can be deprecated.
|
|
|
|
|
|
|
|
| |
The similarity of `Relation#uniq` to `Array#uniq` is confusing. Since our
Relation API is close to SQL terms I renamed `#uniq` to `#distinct`.
There is no deprecation. `#uniq` and `#uniq!` are aliases and will continue
to work. I also updated the documentation to promote the use of `#distinct`.
|
| |
|
|
|
|
| |
To make quote escape binary data correctly it needs the column passed in.
|
| |
|
|\
| |
| |
| |
| |
| | |
Uniqueness validation uses a proc to specify the `:conditions` option.
This is a follow up to #5321 and follows the general direction in
AR to make things lazy evaluated.
|
| |
| |
| |
| |
| | |
This is a follow up to #5321 and follows the general direction in
AR to make things lazy evaluated.
|
|/ |
|
|
|
|
|
| |
This allows end-users to have a `connection` method on their models
without clashing with ActiveRecord internals.
|
| |
|
|
|
|
|
| |
During insertion of "# This migration comes from ... " comment at the beginning of
a migration, presence of magic comment was not considered.
|
|
|
|
| |
[ci skip]
|
|\
| |
| |
| |
| |
| |
| | |
Fix ActiveRecord `subclass_from_attrs` when eager_load is false.
Conflicts:
activerecord/CHANGELOG.md
|
| |
| |
| |
| |
| | |
It cannot find subclass because all classes are loaded automatically
when it needs.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the index name explicitly provided in a migration when reverting.
Fixes #8868
Conflicts:
activerecord/CHANGELOG.md
|
| | |
| | |
| | |
| | | |
schema_statements uses the column name by default to construct the index name, and then raises an exception if it doesn't exist, even if the name option is specified, which causes #8858. this commit makes index_name_for_remove fall back to constructing the index name to remove based on the name option.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
cfabianski/disable_prepared_statement_when_preparing_a_query
Unprepared Visitor + unprepared_statement
Conflicts:
activerecord/CHANGELOG.md
|
| |/ / |
|
| | | |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently Post.active.inactive will result in Post.inactive since
the last where clause wins when scopes are merged.
This pull request will merge all scopes ( barring defaul scope)
using AND.
The default scope will be overridden if another scope acts on the
same where clause.
closes #7365
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
cache_key consults updated_on timestamp if present
Conflicts:
activerecord/CHANGELOG.md
|
| | |
| | |
| | |
| | |
| | | |
- Extract max timestamp retrieval for cache_key
- Update changelog for cache_key changes
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
More helpful error message when instantiating an abstract class
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Calling a literal ActiveRecord::Base.new raises NoMethodError,
since it ends up calling Class.abstract_class? which does not exist.
Similarly, instantiating an actual abstract class hits the database,
when conventionally it should immediately throw NotImplementedError.
ActiveRecord::Base can't be made abstract without breaking many,
many things, so check for it separately.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Closes #9518.
The rake task used to fail silently and left an empty `structure.sql`.
It's confusing for users to get to the root of the problem.
The warning message tells them where to look.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As of ccc6910c we use `mysqldump` to create the `structure.sql`.
The old `#structure_dump` code is still in AR but never used.
I removed all relevant parts from the code-base.
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closes #9483.
There are SQL Queries that can't run inside a transaction. Since
the Migrator used to wrap all Migrations inside a transaction there
was no way to run these queries within a migration.
This patch adds `self.disable_ddl_transaction!` to the migration to
turn transactions off when necessary.
|
| | | |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| | |
relations. Specific where values can be unscoped, and the unscope method
still works when relations are merged or combined.
|
|\ \
| | |
| | |
| | | |
Fix PostgreSQL TIMESTAMP WITH TIME ZONE to return ActiveSupport::Time
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In an AR model a timestamptz attribute would return a ruby string and AR
tests did not check for any type casting. Previous tests would pass
only because an assert_equal was being used on a Time.utc object, which
will parse the right side of the eq to a valid Time instance for
comparision.
switch to test instance of Time instead of ActiveSupport::TimeWithZone
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Closes #7364.
Collection associations behave similar to Arrays. However there is no
way to prepend records. And to append one should use `<<`. Before this
patch `#append` and `#prepend` did not add the record to the loaded
association.
`#append` now behaves like `<<` and `#prepend` is not defined.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Sometimes you want to create a table without an associated model and
test, which is also not a join table. With this commit, you can now
do that.
Example:
rails g migration create_posts title:string
or
rails g migration CreatePosts title:string
This commit also moves the template the model generator uses for the
migration to the migration templates folder, as it seems a more
sensible place for it now that it is shared code.
|
| |
| |
| |
| | |
[ci skip]
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Closes #9480.
We use `TableDefinition` for `#create_table` and `Table` for `#change_table`.
The PostgreSQL sepcifc types were only defined on `TableDefinition` so I
also added them to `Table`.
|
| |
| |
| |
| |
| | |
This reverts commit 408227d9c5ed7de26310d72a1a99c1ee02311c63, reversing
changes made to dca0b57d03deffc933763482e615c3cf0b9a1d97.
|