| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
When first or last is called with an integer on an unloaded association,
the entire collection is loaded. This differs surprisingly from the
behavior of Relation#first/last, which translate the call into a limit
query. For large collections this can make a big difference in
performance.
Change CollectionAssociation#fetch_first_or_last_using_find? to make
this kind of call delegate to Relation.
|
|\
| |
| | |
Re-use order arguments pre-processing for reorder
|
| |
| |
| |
| | |
be consistent.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This reverts commit 71ff7d9c6592b93e2c810a1f464943dd7bd02c7f.
Reason: I need to check with @jeremy if we can do this.
|
| |
| |
| |
| |
| | |
We are checking this when defining the default scope and raising an
ArgumentError
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit baf5f47b8768c7ec0164ed5ab60e369cdd936d71.
Reason: This is breaking the sqlite3 tests with a missing transacion.
Could not investigate right now.
cc @tenderlove
|
| |
| |
| |
| |
| |
| |
| | |
The visitor have to consume the bind parameters to make the statements
work when the prepared statement option is disabled.
Fixes #12023
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
ActiveRecord: Include usecs when quoting DateTime in PostgreSQL adapter
|
| | |
|
|/ |
|
|
|
|
| |
add changelog entry for #11945
|
|
|
|
|
|
|
| |
Allows you to change your configuration for calls to
`table_name_prefix`, `table_name_suffix`, and `pluralize_table_names`.
The default configuration is still ActiveRecord::Base, but you are now
able to change the configuration easily.
|
|
|
|
| |
Closes #11899.
|
|
|
|
|
|
|
| |
Also, constantizing the default_fixture_model_name when it gets loaded
in from the file. Later, when the class_name is passed to a new
FixtureSet, a deprecation warning will occur if the class_name is a
string.
|
|
|
|
| |
This prevents deprecation warnings from popping up.
|
|
|
|
|
|
|
|
|
|
|
| |
The options will specify the prefix and the suffix. Also, I'm moving the
method to be an instance method on the +Migration+ instance. This makes more
sense than being a class method on the +Migrator+ class because the only
place that uses it is on a +Migration+ instance (in a method_missing
hook). The logic for the Migrator shouldn't be doing any work to
calculate the table name, it should be the Migration itself.
Also made some small indentation fixes.
|
|
|
|
|
| |
Caches the patterns of ActiveRecord::DynamicMatchers in a class instance
variable.
|
|\
| |
| | |
Stop interpreting SQL 'string' columns as :string type.
|
| |
| |
| |
| |
| |
| |
| |
| | |
SQL doesn't have a string type, and interpreting 'string' as text is
contrary to at least SQLite3's behavior:
"Note that a declared type of 'STRING' has an affinity of NUMERIC, not TEXT."
http://www.sqlite.org/datatype3.html
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes a regression. The documentation said in its introduction
paragraph that the method returns truthy/falsy, but then below it
was said that if there were no arguments you'd get `true` or `false`.
Also when the argument is exactly `false` a singleton is documented
to be returned.
The method was not returning the singletons so it didn't conform to
those special cases.
The best solution here seems to be to just return singletons in all
cases. This solution is backwards compatible. Also, the contract
has been revised because it has no sense that the predicate varies
that way depending on the input. I bet the previous contract was just
an accident, not something mixed on purpose.
Conflicts:
activerecord/lib/active_record/relation/finder_methods.rb
activerecord/test/cases/finder_test.rb
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
Conflicts:
actionview/README.rdoc
activerecord/lib/active_record/migration.rb
guides/source/development_dependencies_install.md
guides/source/getting_started.md
|
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 70d6e16fbad75b89dd1798ed697e7732b8606fa3, reversing
changes made to ea4db3bc078fb3093ecdddffdf4f2f4ff3e1e8f9.
Seems to be a code merge done by mistake.
|
| |
| |
| |
| |
| | |
Currently, ActiveRecord models with multiple words cannot have their
inverse associations detected automatically.
|
|\ \
| | |
| | | |
Fix assign ip address with invalid values raise exception
|
| | |
| | |
| | |
| | | |
In order that set attribute should not be bang method
|
|/ / |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
1) Use `assert` and `refute` where possible.
2) Separately include the setup, subject, and assertions in each test - don't hide the tested call in an assertion method.
3) Name things based on their role rather than incidental facts about them - e.g. `@bird[1]` -> `bird_to_destroy`. `bird2_deletion_attributes` -> `destroy_bird_attributes`.
4) Use more succinct naming where possible - e.g. `birds_with_callback` -> `birds_with_add`, `@pirate_with_two_birds` -> `@pirate`
|
| |
| |
| |
| |
| | |
Issue #1: :before_add callback is called when nested attributes assignment assigns to existing record if the association is not yet loaded
Issue #2: Nested Attributes assignment does not affect the record in the association target when callback triggers loading of the association
|
| | |
|
| |
| |
| |
| |
| | |
If 'enable_extension' is used in a migration's 'change' method, use
'disable_extension' on down migration (and vice-versa).
|
| | |
|
|\ \
| | |
| | | |
Set field encoding to client_encoding for mysql adapter.
|
| | | |
|
|/ / |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit fixes the build but we need to further investigate the root cause,
to see if it can be fixed.
The test fails under `MysqlAdapter` with:
```
ActiveRecord::UnknownAttributeError: unknown attribute: なまえ
```
The root cause is that the returned column names from the adapter
have the wrong encoding:
```ruby
columns = Weird.columns_hash.keys
columns # => ["id", "a$b", "\xE3\x81\xAA\xE3\x81\xBE\xE3\x81\x88", "from"]
columns.map(&:encoding) # => [#<Encoding:ASCII-8BIT>, #<Encoding:ASCII-8BIT>, #<Encoding:ASCII-8BIT>, #<Encoding:ASCII-8BIT>]
columns.map {|c| c.dup.force_encoding "utf-8"} # => ["id", "a$b", "なまえ", "from"]
```
From what I can tell the MySQL variables are fine:
```
ActiveRecord::Base.connection.execute("show variables")
...
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/local/Cellar/mysql/5.5.29/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database utf8_unicode_ci
collation_server utf8_general_ci
...
```
|