aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Place args normalization from `left_outer_joins` to `left_outer_joins!`Ryuta Kamizono2017-12-201-4/+2
| | | | | | | | Like other query bang methods.
* | Merge pull request #31519 from ↵Ryuta Kamizono2017-12-203-7/+3
|\ \ | | | | | | | | | | | | eugeneius/verbose_query_logs_new_framework_defaults Remove verbose_query_logs from new_framework_defaults_5_2.rb
| * | Remove verbose_query_logs from new_framework_defaults_5_2.rbEugene Kenny2017-12-203-7/+3
|/ / | | | | | | | | | | | | | | | | | | | | The `app:update` rake task will regenerate `development.rb` so that it contains this option; that means we're currently adding it to existing apps in two places, which is unnecessary and confusing. Also: - Remove inaccurate comment about which stack frames are ignored - Clarify that the feature uses `caller_locations`, not `caller` - Remove unused return value in `extract_callstack`
* | Merge pull request #31177 from ↵Matthew Draper2017-12-205-6/+88
|\ \ | | | | | | | | | | | | albertoalmagro/remove-default-mysql-engine-from-ar-5-2 Remove default ENGINE=InnoDB for Mysql2 adapter
| * | Remove default ENGINE documentation for MySQL and MariaDBAlberto Almagro2017-12-111-2/+1
| | | | | | | | | | | | | | | Removes default ENGINE documentation hint for MySQL and MariaDB as we aren't taking measures to set the default ENGINE anymore.
| * | Remove default ENGINE=InnoDB for Mysql2 adapterAlberto Almagro2017-12-114-4/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit ENGINE=InnoDB was added by default to Mysql2 adapter +create_table+ if no +options+ option was provided. This default ENGINE was lost as soon as something was passed in at +options+ option, making its goal and propagation inconsistent, as the programmer needed to remember including ENGINE=InnoDB when something was passed in. This commit removes default ENGINE as its use isn't needed anymore for current MySQL and MariaDB versions. It adds compatibility support and tests to ensure that default ENGINE is still present for migrations with version 5.1 and before. It also ensures we still dump the ENGINE option to +schema.rb+ in order to avoid inconsistencies.
* | | Fix `count(:all)` to correctly work `distinct` with custom SELECT listRyuta Kamizono2017-12-204-10/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently `count(:all)` with `distinct` doesn't work correctly because SELECT list is always replaced to `*` or primary key in that case even if having custom SELECT list. And also, PostgreSQL has a limitation that ORDER BY expressions must appear in select list for SELECT DISTINCT. Therefore, we should not replace custom SELECT list when using `count(:all)` with `distinct`. Closes #31277.
* | | Merge pull request #31483 from ↵Ryuta Kamizono2017-12-203-9/+60
|\ \ \ | | | | | | | | | | | | | | | | yhirano55/fix_validation_callbacks_on_multiple_context_in_active_model Bugfix: validation callbacks on multiple context
| * | | Fix validation callbacks on multiple contextYoshiyuki Hirano2017-12-203-9/+60
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I found a bug that validation callbacks don't fire on multiple context. So I've fixed it. Example: ```ruby class Dog include ActiveModel::Validations include ActiveModel::Validations::Callbacks attr_accessor :history def initialize @history = [] end before_validation :set_before_validation_on_a, on: :a before_validation :set_before_validation_on_b, on: :b after_validation :set_after_validation_on_a, on: :a after_validation :set_after_validation_on_b, on: :b def set_before_validation_on_a; history << "before_validation on a"; end def set_before_validation_on_b; history << "before_validation on b"; end def set_after_validation_on_a; history << "after_validation on a" ; end def set_after_validation_on_b; history << "after_validation on b" ; end end ``` Before: ``` d = Dog.new d.valid?([:a, :b]) d.history # [] ``` After: ``` d = Dog.new d.valid?([:a, :b]) d.history # ["before_validation on a", "before_validation on b", "after_validation on a", "after_validation on b"] ```
* | | Remove outdated comments [ci skip]Ryuta Kamizono2017-12-191-4/+0
| | |
* | | Merge pull request #31492 from prathamesh-sonpatki/rm-assert-nothing-raisedEileen M. Uchitelle2017-12-191-4/+2
|\ \ \ | | | | | | | | assert_nothing_raised not required here, we can assert directly for the actual result
| * | | assert_nothing_raised not required here, we can assert directly for the ↵Prathamesh Sonpatki2017-12-191-4/+2
| | | | | | | | | | | | | | | | actual result
* | | | Quote primary key in the subselect generated by mysql2 adapterRyuta Kamizono2017-12-193-4/+12
| | | | | | | | | | | | | | | | Otherwise it will occur syntax error if primary key is a reserved word.
* | | | Using subselect for `delete_all` with `limit` or `offset`Ryuta Kamizono2017-12-194-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | Arel doesn't support subselect generation for DELETE unlike UPDATE yet, but we already have that generation in connection adapters. We can simply use the subselect generated by that one.
* | | | Using subselect generated by the connection adapter for `update_all` with ↵Ryuta Kamizono2017-12-192-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `offset` Most RDBMS (except SQLite) requires subselect for UPDATE with OFFSET, but Arel doesn't support executable subselect generation for MySQL's UPDATE yet. We need to use the subselect generated by the connection adapter for now, it works well. Fixes #30148.
* | | | Merge pull request #31501 from dixitp012/active_record_basic_guideRyuta Kamizono2017-12-191-1/+1
|\ \ \ \ | | | | | | | | | | [ci skip] Added Object Relational Mapping wiki link
| * | | | [ci skip] Added Object Relational Mapping wiki linkDixit Patel2017-12-191-1/+1
|/ / / /
* | | | Delete MiniMagick tempfile when transformation failsGeorge Claghorn2017-12-181-1/+7
| | | |
* | | | Merge pull request #31475 from ↵Matthew Draper2017-12-193-4/+14
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | shioyama/reset_column_information_redefine_child_attribute_methods Undefine attribute methods of descendants when resetting column information
| * | | | Add changelog entry for e1ceb10Chris Salzberg2017-12-171-0/+5
| | | | |
| * | | | Undefine attribute methods on all descendants when resetting column infoChris Salzberg2017-12-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we don't do this, then we end up with an inconsistent situation where a parent class may e.g. reset column information, but child classes will contine to see attribute methods as already generated, and thus not pick up this new column (falling through to method_missing).
| * | | | Add failing testChris Salzberg2017-12-171-3/+8
| | | | |
* | | | | Implicitly skip bootsnap for `rails new --dev`yuuji.yaginuma2017-12-192-1/+12
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | Specifying the `--dev` option is when want to change the codebase, as it is not necessary to cache it. Context: https://github.com/rails/rails/pull/31485#issuecomment-352452653
* | | | Merge pull request #31348 from y-yagi/fix_31283Kasper Timm Hansen2017-12-1813-27/+94
|\ \ \ \ | | | | | | | | | | Raise an error only when `require_master_key` is specified
| * | | | Raise an error only when `require_master_key` is specifiedyuuji.yaginuma2017-12-1813-27/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To prevent errors from being raise in environments where credentials is unnecessary. Context: https://github.com/rails/rails/issues/31283#issuecomment-348801489 Fixes #31283
* | | | | Merge pull request #31497 from aried3r/patch-2Kasper Timm Hansen2017-12-181-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Update new_framework_defaults_5_2.rb.tt
| * | | | | Update new_framework_defaults_5_2.rb.ttAnton Rieder2017-12-181-1/+1
| | | | | | | | | | | | | | | | | | Be consistent in comments when mentioning AES.
* | | | | | Ensure MiniMagick tempfiles are properly unlinked after image transformationGeorge Claghorn2017-12-181-9/+18
|/ / / / /
* | | | | Merge pull request #31449 from PHedkvist/headless_api_docEileen M. Uchitelle2017-12-181-0/+3
|\ \ \ \ \ | | | | | | | | | | | | Add headless browser support in api docs [ci skip]
| * | | | | Add headless browser support in api docs [ci skip]Pierre Hedkvist2017-12-181-0/+3
| | | | | |
* | | | | | Merge pull request #31485 from y-yagi/skip_bootsnap_optionEileen M. Uchitelle2017-12-184-0/+31
|\ \ \ \ \ \ | | | | | | | | | | | | | | Add `skip_bootsnap` option
| * | | | | | Add `skip_bootsnap` optionyuuji.yaginuma2017-12-164-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `bootsnap` is a useful gem normally. However, `bootsnap` is unnecessary when generating a Rails application to be used only for testing. So I want to control whether use this or not by option.
* | | | | | | Merge pull request #31479 from iamvery/reword-delegate-allow-nil-paragraphEileen M. Uchitelle2017-12-181-5/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Clarify docs for delegate :allow_nil option
| * | | | | | | Clarify docs for delegate :allow_nil optionJay Hayes2017-12-151-5/+2
| | | | | | | |
* | | | | | | | Merge pull request #31490 from eugeneius/hash_digest_class_truncateEileen M. Uchitelle2017-12-184-15/+7
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Don't include ellipsis in truncated digest output
| * | | | | | | | Don't include ellipsis in truncated digest outputEugene Kenny2017-12-174-15/+7
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using `truncate` to limit the length of the digest has the unwanted side effect of adding an ellipsis when the input is longer than the limit. Also: - Don't instantiate a new object for every digest - Rename the configuration option to `hash_digest_class` - Update the CHANGELOG entry to describe how to use the feature
* | | | | | | | Convert non-web image (e.g. PSD) variants to PNGGeorge Claghorn2017-12-183-12/+53
| |_|_|/ / / / |/| | | | | |
* | | | | | | Fix `test_counter_cache_with_touch_and_lock_version` failureRyuta Kamizono2017-12-181-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Looks like it is failed due to datetime rounding. Related #23521. https://travis-ci.org/rails/rails/jobs/317734560#L1980-L1984
* | | | | | | Using table name qualified column names unless having SELECT list explicitlyRyuta Kamizono2017-12-182-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously table name qualified `*` is used in that case. If it is not qualified with a table name, an ambiguous column name error will occur when using JOINs.
* | | | | | | emphasize working on existing issues/patches for newcomers [ci skip]Xavier Noria2017-12-171-1/+3
| |_|_|_|/ / |/| | | | | | | | | | | | | | | | | Thanks to @Datasnuten for the suggestion.
* | | | | | Minor cleanup of CHANGELOG of PR #30850 [ci skip]Prathamesh Sonpatki2017-12-171-3/+3
| | | | | |
* | | | | | Added reference to default value of `allow_other_host` [ci skip]Prathamesh Sonpatki2017-12-171-1/+1
| |_|_|/ / |/| | | |
* | | | | Update ActiveStorage::Blob#transformation docs [ci skip]George Claghorn2017-12-161-3/+3
| | | | |
* | | | | Add test case that active_storage:install task works within engineyuuji.yaginuma2017-12-171-0/+15
|/ / / / | | | | | | | | | | | | Follow up of #31391
* | | | Merge pull request #31316 from bogdanvlviv/update-association_basics-guideKasper Timm Hansen2017-12-161-3/+5
|\ \ \ \ | | | | | | | | | | Update "Active Record Associations" guide [ci skip]
| * | | | Update "Active Record Associations" guide [ci skip]bogdanvlviv2017-12-141-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make all `ActiveRecord::Base.find` as link - Remove redundant sentences "It also adds the additional condition that the object must be in the collection."
* | | | | Merge pull request #31484 from yhirano55/fix_active_storage_guideRyuta Kamizono2017-12-161-5/+5
|\ \ \ \ \ | | | | | | | | | | | | Fix Active Storage Overview guide [ci skip]
| * | | | | Fix Active Storage Overview guide [ci skip]Yoshiyuki Hirano2017-12-161-5/+5
|/ / / / /
* | | | | Explicitly require `sidekiq/cli`yuuji.yaginuma2017-12-161-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, sidekiq integration test + Ruby 2.5.0-rc1 show exception as follows. ``` #<Thread:0x000000000670bec0@/home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/util.rb:23 run> terminated with exception (report_on_exception is true): /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `block in load_missing_constant': uninitialized constant Sidekiq::CLI (NameError) from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache' from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `rescue in load_missing_constant' from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:42:in `load_missing_constant' from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/launcher.rb:65:in `heartbeat' from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/launcher.rb:123:in `start_heartbeat' ``` https://travis-ci.org/rails/rails/jobs/317187279#L2152 The reason for this is that `Sidekiq::CLI` has not been loaded. Sidekiq integration test launches a Sidekiq instance within another Ruby process. In such a case, need to require 'sidekiq/cli' in that launch code. Ref: https://github.com/mperham/sidekiq/pull/3692#issuecomment-352032251
* | | | | Handle invalid signed blob IDs gracefullyGeorge Claghorn2017-12-157-18/+51
| | | | |