aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | 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
| | | | |
* | | | | Merge pull request #31481 from claudiob/fix-ast-guidesClaudio B2017-12-151-6/+6
|\ \ \ \ \ | |_|/ / / |/| | | | [ci skip] Use :amazon, not :s3, so that guides reflect the current code
| * | | | [ci skip] Use :amazon, not :s3, to reflect codeClaudio B2017-12-151-6/+6
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The [template](https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/app/templates/config/storage.yml.tt#L10) that generates the `config/storage.yml` file has the Amazon S3 key specified as `:amazon`, not `:s3`. The guides should reflect the nomenclature, given that every other service also has the name of the company as the key (:google, :microsoft).
* | | | Merge pull request #31473 from shioyama/fix_instantiate_test_attributesRyuta Kamizono2017-12-161-4/+7
|\ \ \ \ | | | | | | | | | | Modify test to correctly pass attributes hash
| * | | | Modify test to correctly pass attributes hashChris Salzberg2017-12-151-4/+7
| | | | |
* | | | | Restrict variants to variable image blobsGeorge Claghorn2017-12-154-4/+27
| | | | |
* | | | | Remove needless `change_table`Ryuta Kamizono2017-12-151-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | These are using `remove_column` directly, not used `t` in `change_table`.