aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use `try` only when we're unsure if the receiver would respond_to the methodAkira Matsuda2019-08-0124-43/+40
|
* Merge pull request #36827 from akshaymohite/fix-documentation-typo-in-exampleVipul A M2019-08-011-1/+1
|\ | | | | Fixed a typo in documentation example of activerecord database configuration. [ci skip]
| * Fixed a typo in documentation example of activerecord database ↵Akshay Mohite2019-08-011-1/+1
| | | | | | | | | | | | configuration. [ci skip] - The example has sqlite3 adpater in database.yml, whereas configuration object had incorrectly specified mysql2 in documentation.
* | Do not use the same test class in different testsyuuji.yaginuma2019-08-011-2/+2
| | | | | | | | | | | | | | | | | | This fixes the following warnings. ``` actionmailer/test/base_test.rb:272: warning: method redefined; discarding old welcome actionmailer/test/base_test.rb:260: warning: previous definition of welcome was here ```
* | Merge pull request #36792 from peterzhu2118/azure-content-dispositionGannon McGibbon2019-07-312-2/+19
|\ \ | | | | | | Upload filename and disposition for Azure
| * | Upload file with filename and disposition for AzurePeter Zhu2019-07-312-2/+19
| | |
* | | Merge pull request #36825 from cpruitt/transliterate-frozen-us-ascii-stringsEileen M. Uchitelle2019-07-312-7/+8
|\ \ \ | | | | | | | | Prevent error on transliterate with frozen strings
| * | | Prevent error on transliterate with frozen strings.Cliff Pruitt2019-07-312-7/+8
| | |/ | |/| | | | | | | ActiveSupport::Inflector.transliterate mutates strings by changing encodings. Prior to this commit passing a frozen string would raise a `FrozenError`. This change duplicates the internal string, if frozen, before transliterating.
* | | Merge pull request #36791 from peterzhu2118/s3-upload-dispositionGannon McGibbon2019-07-312-7/+26
|\ \ \ | | | | | | | | Upload with filename and disposition for S3
| * | | Upload file with filename and disposition for S3Peter Zhu2019-07-312-7/+26
| | |/ | |/|
* | | Merge pull request #36824 from eileencodes/fix-db-seedEileen M. Uchitelle2019-07-312-0/+21
|\ \ \ | |_|/ |/| | Fix db:seed
| * | Fix db:seedeileencodes2019-07-312-0/+21
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `rake db:seed` command was broken for the primary environment if the application is using multiple databases. We never implemented `rake db:seed` for other databases (coming soon), but that shouldn't break the default case. The reason this was broken was because `abort_if_pending_migrations` would loop through the configs for all databases and check for migrations but would leave the last established connection. So `db:seed` was looking in the wrong database for the table to seed. This PR doesn't fix the fact that `db:seed` doesn't work for multiple databases but does fix the default case. Fixes #36817 Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
* | Address to rubocop offencesRyuta Kamizono2019-07-315-6/+6
| |
* | Reduce method invocations and object allocations in head()Akira Matsuda2019-07-311-1/+1
| |
* | Reduce Array allocationsAkira Matsuda2019-07-312-4/+4
| |
* | Reduce block executionAkira Matsuda2019-07-311-3/+3
| |
* | Reduce method callsAkira Matsuda2019-07-311-2/+1
| |
* | Reduce Array assignment by not giving a name for unused `*args`Akira Matsuda2019-07-314-6/+6
| |
* | Reduce Array allocationsAkira Matsuda2019-07-311-1/+1
| |
* | Reduce some more Hash#fetch + default object allocationsAkira Matsuda2019-07-312-3/+3
| |
* | Merge pull request #36708 from ↵Kasper Timm Hansen2019-07-315-12/+37
|\ \ | | | | | | | | | | | | rails/has-one-polymorphic-touch-dont-cache-association-result-inside-create-transaction Polymorphic has_one touch: Don't cache association result inside crea…
| * | Polymorphic has_one touch: Reset association cache result after create ↵Kasper Timm Hansen2019-07-315-12/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | transaction In case of a polymorphic association there's no automatic inverse_of to assign the inverse record. So to get the record there needs to be a query executed, however, if the query fires within the transaction that's trying to create the associated record, no record can be found. And worse, the nil result is cached on the association so after the transaction commits the record can't be found. That's what happens if touch is enabled on a polymorphic has_one association. Consider a Comment with a commentable association that needs to be touched. For `Comment.create(commentable: Post.new)`, the existing code essentially does `commentable.send(:comment)` within the create transaction for the comment and thus not finding the comment. Now we're purposefully clearing the cache in case we've tried accessing the association within the transaction and found no object. Before: ``` kaspth-imac 2.6.3 ~/code/rails/activerecord master *= ARCONN=postgresql bin/test test/cases/associations/has_one_associations_test.rb -n /commit/ Using postgresql Run options: -n /commit/ --seed 46022 D, [2019-07-19T03:30:37.864537 #96022] DEBUG -- : Chef Load (0.2ms) SELECT "chefs".* FROM "chefs" WHERE "chefs"."employable_id" = $1 AND "chefs"."employable_type" = $2 LIMIT $3 [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"], ["LIMIT", 1]] D, [2019-07-19T03:30:37.865013 #96022] DEBUG -- : Chef Create (0.2ms) INSERT INTO "chefs" ("employable_id", "employable_type") VALUES ($1, $2) RETURNING "id" [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"]] D, [2019-07-19T03:30:37.865201 #96022] DEBUG -- : TRANSACTION (0.1ms) RELEASE SAVEPOINT active_record_1 D, [2019-07-19T03:30:37.874136 #96022] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK D, [2019-07-19T03:30:37.874323 #96022] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK F Failure: HasOneAssociationsTest#test_polymorphic_has_one_with_touch_option_on_create_wont_cache_assocation_so_fetching_after_transaction_commit_works [/Users/kaspth/code/rails/activerecord/test/cases/associations/has_one_associations_test.rb:716]: --- expected +++ actual @@ -1 +1 @@ -#<Chef id: 1, employable_id: 1, employable_type: "DrinkDesignerWithPolymorphicTouchChef", department_id: nil, employable_list_type: nil, employable_list_id: nil> +nil ``` After: ``` kaspth-imac 2.6.3 ~/code/rails/activerecord master *= ARCONN=postgresql bin/test test/cases/associations/has_one_associations_test.rb -n /commit/ Using postgresql Run options: -n /commit/ --seed 46022 D, [2019-07-19T03:30:22.479387 #95973] DEBUG -- : Chef Create (0.3ms) INSERT INTO "chefs" ("employable_id", "employable_type") VALUES ($1, $2) RETURNING "id" [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"]] D, [2019-07-19T03:30:22.479574 #95973] DEBUG -- : TRANSACTION (0.1ms) RELEASE SAVEPOINT active_record_1 D, [2019-07-19T03:30:22.482051 #95973] DEBUG -- : Chef Load (0.1ms) SELECT "chefs".* FROM "chefs" WHERE "chefs"."employable_id" = $1 AND "chefs"."employable_type" = $2 LIMIT $3 [["employable_id", 1], ["employable_type", "DrinkDesignerWithPolymorphicTouchChef"], ["LIMIT", 1]] D, [2019-07-19T03:30:22.482317 #95973] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK D, [2019-07-19T03:30:22.482437 #95973] DEBUG -- : TRANSACTION (0.1ms) ROLLBACK . Finished in 0.088498s, 11.2997 runs/s, 22.5994 assertions/s. 1 runs, 2 assertions, 0 failures, 0 errors, 0 skips ``` Notice the select now fires after the commit.
* | | Merge pull request #36819 from yamato-payforward/payforward-branchRyuta Kamizono2019-07-311-1/+1
|\ \ \ | | | | | | | | fix a typo
| * | | fix a typoyamato-payforward2019-07-311-1/+1
|/ / /
* | | Merge pull request #36818 from hc0208/fix_typo_in_data_remote_jsRyuta Kamizono2019-07-311-1/+1
|\ \ \ | | | | | | | | Fix typo submited → submitted
| * | | Fix typo submited → submitted [ci skip]hc02082019-07-311-1/+1
| | | |
* | | | Accessing ivar with Symbols might be just a very little bit better than with ↵Akira Matsuda2019-07-314-8/+8
| | | | | | | | | | | | | | | | fstrings
* | | | Avoid creating new Array when looking up already registered detailAkira Matsuda2019-07-311-1/+1
| | | |
* | | | Reduce Hash object creation when normalizing request envAkira Matsuda2019-07-311-2/+3
| | | |
* | | | Cache tags_text to avoid computing tags each time when loggingAkira Matsuda2019-07-311-5/+10
| | | |
* | | | Reduce object allocations in Middleware::StaticAkira Matsuda2019-07-311-11/+12
| | | |
* | | | Reduce unnecessary String creation by not `to_s`ing until nothing matchesAkira Matsuda2019-07-311-1/+1
| | | |
* | | | Reduce String allocation when finding controller classAkira Matsuda2019-07-311-1/+1
| | | |
* | | | No need to dup the payload for an instrumentationAkira Matsuda2019-07-311-1/+1
| | | |
* | | | Speedup and reduce Array creation when constantizing a non-namespaced stringAkira Matsuda2019-07-311-25/+29
|/ / /
* | | Merge pull request #36815 from emp823/masterRyuta Kamizono2019-07-311-1/+1
|\ \ \ | | | | | | | | Fix typo in autoload documentation [ci skip]
| * | | Fix typo in autoload documentation [ci skip]Erik Pearson2019-07-301-1/+1
|/ / /
* | | Bump Trix to ^1.2.0Javan Makhmali2019-07-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Adds an attachment button to the Trix toolbar that improves overall file upload usability, especially on mobile devices where files can't be dragged / dropped. References: - https://github.com/basecamp/trix/releases/tag/1.2.0 - https://github.com/basecamp/trix/pull/619 - https://github.com/basecamp/trix/issues/582
* | | Merge pull request #36813 from haruyuki97/haruyuki97/fix-comment-in-url-helperPrem Sichanugrist2019-07-301-1/+1
|\ \ \ | | | | | | | | | | | | | | | | Fix a/an usage on `phone_to` documentation. [ci skip]
| * | | fix a typo [ci skip]haruyuki972019-07-301-1/+1
| | | |
* | | | Merge pull request #36812 from nigh7m4r3/readme-comma-usagePrem Sichanugrist2019-07-301-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | Fix comma usage on project's README.md [ci skip]
| * | | | Update README.mdRifatul Islam Chayon2019-07-301-2/+2
|/ / / / | | | | | | | | A very minor change of comma usage.
* | | | Merge pull request #36805 from ↵Ryuta Kamizono2019-07-303-24/+65
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | kamipo/user_supplied_joins_order_should_be_preserved Preserve user supplied joins order as much as possible
| * | | | Preserve user supplied joins order as much as possibleRyuta Kamizono2019-07-303-24/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, string joins are always applied as last joins part, and Arel join nodes are always applied as leading joins part (since #36304), it makes people struggled to preserve user supplied joins order. To mitigate this problem, preserve the order of string joins and Arel join nodes either before or after of association joins. Fixes #36761. Fixes #34328. Fixes #24281. Fixes #12953.
* | | | | Add `silence_warnings` for defining 'not_' prefix enum elementsRyuta Kamizono2019-07-301-1/+3
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To suppress the following warnings in tests. ``` ~/rails/activerecord/lib/active_record/scoping/named.rb:190: warning: method redefined; discarding old not_sent ~/rails/activerecord/lib/active_record/scoping/named.rb:190: warning: previous definition of not_sent was here ```
* | | | Merge pull request #36804 from vzvu3k6k/ttVipul A M2019-07-301-1/+1
|\ \ \ \ | | | | | | | | | | [ci skip] Fix unclosed tags in `Inflector` docs
| * | | | [ci skip] Fix unclosed tags in `Inflector` docsvzvu3k6k2019-07-301-1/+1
| | | | |
* | | | | Merge pull request #36782 from jhawthorn/move_database_exists_to_adapterJohn Hawthorn2019-07-298-18/+13
|\ \ \ \ \ | | | | | | | | | | | | Move DatabaseAlreadyExists detection to DB adapter
| * | | | | Move DatabaseAlreadyExists detection to DB adapterJohn Hawthorn2019-07-298-18/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously it was the responsibility of the database tasks to translate the invalid statement from creating a duplicate database into an ActiveRecord::Tasks::DatabaseAlreadyExists error. It's actually easier for us to do this detection inside of the adapter, where we already do a case statement on the return code to translate the error. This commit introduces ActiveRecord::DatabaseAlreadyExists, a subclass of StatementInvalid, and updates both AbstractMysqlAdapter and PostgresqlAdapter to return this more specific exception in that case. Because this is a subclass of the old exception, StatementInvalid, it should be backwards compatible with any code expecting that from create_database. This works for both create_database and exectute("CREATE DATABASE")
* | | | | | Expand CHANGELOG for #36800 [ci skip]Ryuta Kamizono2019-07-301-2/+2
| |/ / / / |/| | | |