aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source
Commit message (Collapse)AuthorAgeFilesLines
* fix broken link in Action Cable guides and readme [ci skip]Greg Molnar2018-10-081-1/+1
|
* Merge pull request #34114 from Madogiwa0124/update_getting_start_rails_versionEileen M. Uchitelle2018-10-071-1/+1
|\ | | | | getting started page rails version update to 5.2.1
| * getting started page rails version update to 5.2.1Madogiwa2018-10-071-1/+1
| |
* | Merge pull request #34077 from cllns/clarify-activesupport-instructionYuji Yaginuma2018-10-061-0/+8
|\ \ | | | | | | ActiveStorage guide: Add instruction for test environment
| * | Add instruction for test environmentSean Collins2018-10-051-0/+8
| | |
* | | Add documentation to run tests with specific seed [ci skip]Alberto Almagro2018-10-051-0/+20
|/ / | | | | | | | | This commit documents how to run all tests or a single test file with a specific randomization seed.
* | Merge pull request #34055 from Edouard-chin/ec-logger-fixRafael França2018-10-031-2/+1
|\ \ | | | | | | Fix the LoggerSilence to work as described:
| * | Fix the LoggerSilence to work as described:Edouard CHIN2018-10-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Following the Rails guide which state that a logger needs to include the `ActiveSupport::LoggerSilence` as well as `ActiveSupport::LoggerThreadSafe` modules isn't enough and won't work. Here is a test cases with 3 tests that all fails https://gist.github.com/Edouard-chin/4a72930c2b1eafbbd72a80c66f102010 The problems are the following: 1) The logger needs to call `after_initialize` in order to setup some instance variables. 2) The silence doesn't actually work because the bare ruby Logger `add` method checks for the instance variable `@logger`. We need to override the `add` (like we used to in the ActiveSupport::Logger class). 3) Calling `debug?` `info?` etc... doesn't work as the bare ruby methods will check for the instance variable. Again we need to override this methods (like we used to in the ActiveSupport::Logger class) The LoggerSilence won't work without LoggerThreadSafe, but the later is not public API, the user shouldn't have to include it so I modified to include it automatically. Same for the `after_initialize` method. I find unuintitive to have to call it directly. I modified to instance the variables when the module get included.
* | | Fix the docs for Module#parents and related methods in guides [ci skip]Prathamesh Sonpatki2018-10-031-16/+16
|/ / | | | | | | - Followup of https://github.com/rails/rails/pull/34051
* | Merge pull request #34053 from prathamesh-sonpatki/update-js-docsRafael França2018-10-025-17/+5
|\ \ | | | | | | Update js docs after the webpacker changes
| * | Turbolinks is enabled by default in new apps [ci skip]Prathamesh Sonpatki2018-10-031-4/+0
| | |
| * | Update the docs now that webpacker is default [ci skip]Prathamesh Sonpatki2018-10-034-13/+5
| | |
* | | Deprecate the `LoggerSilence` constant:Edouard CHIN2018-10-021-2/+2
|/ / | | | | | | | | | | | | | | - I found this weird that the LoggerSilence wasn't using the `ActiveSupport` namespace (AFAIK all other classes have it). This PR deprecate the use of `LoggerSilence` for `ActiveSupport::LoggerSilence` instead.
* | Fix spellings for 'unmarshall(ing/ed)' & 'marshall(ing/ed)'Sharang Dashputre2018-10-024-4/+4
| |
* | Updates expires_in docsGraham Turner2018-09-281-2/+2
| | | | | | | | | | | | Previously the documentation for expires_in suggested that the option was available for all cache stores. This clarifies that the behavior can be supported, but is not always supported.
* | Merge pull request #33348 from ruralocity/update-validation-contexts-guideRyuta Kamizono2018-09-281-9/+27
|\ \ | | | | | | Update guide for validation custom contexts [ci skip]
| * | Update guide for validation custom contexts [ci skip]Aaron Sumner2018-07-111-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Active Record validations guide's section on custom contexts appears to be incomplete. the code sample shows a context being added to validations, but not being used. Add to the sample code for this section by showing validations being run with and without the custom context. Add a second sample code block showing that validations with no context are also run, when a context is used.
* | | Merge pull request #33880 from robbertbrak/masterRyuta Kamizono2018-09-281-1/+3
|\ \ \ | | | | | | | | | | | | | | | | Clarify transactional behavior of after_commit and after_rollback callbacks [ci skip]
| * | | Clarify transactional behavior of after_commit and after_rollback callbacksRobbert Brak2018-09-141-1/+3
| | | |
* | | | Merge pull request #33833 from duduribeiro/patch-2Gannon McGibbon2018-09-271-1/+1
|\ \ \ \ | | | | | | | | | | [ci skip] Do not recommend testing stored object in template
| * | | | [ci skip] Recommend testing information displayed over object storedKadu Ribeiro2018-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since `assigns` is not placed by default with Rails, we suggested to test if the right information was displayed instead of suggesting to test if the right object was stored in the template.
* | | | | Improve phrasing of one sentence in the contributing guidePascal Lamouric2018-09-241-1/+1
| | | | |
* | | | | Added mandatory region and bucketAsaf Bartov2018-09-231-0/+2
| | | | | | | | | | | | | | | The 'setup' section was misleadingly leaving out :bucket and :region in the sample, but servers don't start without them.
* | | | | Replace line items with chapters [ci skip]Ian Fleeton2018-09-211-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | Line items are a holdover from when orders were used in the examples instead of books.
* | | | | Correct spelling in "Contributing to Ruby on Rails" guide [ci skip]bogdanvlviv2018-09-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ambigity -> ambiguity Related to #33891
* | | | | Merge pull request #33891 from jgorman/remote_namesRafael França2018-09-201-40/+12
|\ \ \ \ \ | | | | | | | | | | | | Contributing to Ruby on Rails Guide: standardize git remote names [ci skip].
| * | | | | Standardize git remote names.John Gorman2018-09-151-40/+12
| | |_|_|/ | |/| | |
* | | | | Merge pull request #33929 from yahonda/update_utf8mb4_railsguideRyuta Kamizono2018-09-201-1/+2
|\ \ \ \ \ | | | | | | | | | | | | Update MySQL server version and character set in Rails Guide [skip ci]
| * | | | | Update MySQL server version and character set in Rails Guide [skip ci]Yasuo Honda2018-09-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Related to #33853
* | | | | | Merge pull request #33897 from bogdanvlviv/follow-up-33751Rafael França2018-09-181-0/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Follow up #33751
| * | | | | Payload of `enqueue_retry.active_job` includes `:wait`bogdanvlviv2018-09-161-0/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add mention about it to the "Active Support Instrumentation" guide Related to https://github.com/rails/rails/pull/33751#discussion_r214745153 Follow up #33751
* | | | | Fix a typo in AR Query Interface [ci skip]Andrew2018-09-181-1/+1
| | | | |
* | | | | Improve readability in form helpers guide [ci skip]tkoyama19882018-09-171-2/+2
|/ / / /
* | | | Configure Active Storage route prefixChris Bisnett2018-09-141-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applications can configure the route prefix prepended to the Active Storage routes. By default this maintains the previous prefix `/rails/active_storage` but supports custom prefixes. Before this change the route for serving blobs is fixed to `/rails/active_storage/blobs/:signed_id/*filename`. After this change it's possible to configure the route to something like `/files/blobs/:signed_id/*filename`.
* | | | Add `:redis_cache_store` to `config.cache_store` options [ci skip]yuuji.yaginuma2018-09-141-1/+1
| |/ / |/| |
* | | Clarify docs of `config.filter_parameters` and `#filter_attributes`bogdanvlviv2018-09-121-1/+1
| | | | | | | | | | | | | | | Add mention that `config.filter_parameters` also filters out sensitive values of database columns when call `#inspect` since #33756.
* | | Update action_mailer_basics.md [ci skip]Sharang Dashputre2018-09-121-1/+1
| | | | | | | | | | | | Add backticks to code
* | | use "minitest" consistentlyXavier Noria2018-09-115-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The name of the minitest library is spelled that way: regular font, and lowercase. Lowercase is used even at the beginning of sentences, see http://docs.seattlerb.org/minitest/ I double-checked this with @zenspider too (thanks!).
* | | Merge pull request #33824 from yskkin/suppress_loggingRafael França2018-09-112-13/+15
|\ \ \ | |/ / |/| | Skip delivery notification when perform_deliveries is false.
| * | Add `perform_deliveries` to a payload of `deliver.action_mailer` notification.Yoshiyuki Kinjo2018-09-091-12/+14
| | |
| * | Skip delivery notification when perform_deliveries is false.Yoshiyuki Kinjo2018-09-081-1/+1
| | |
* | | Fix sqlite3 url config in "Configuring Rails Applications" guidebogdanvlviv2018-09-091-3/+3
|/ / | | | | | | | | See `ConnectionUrlResolver#database_from_path` in `activerecord/lib/active_record/connection_adapters/connection_specification.rb`
* | trace autoloads, and document hints for troubleshootingXavier Noria2018-09-071-0/+31
| | | | | | | | Closes #32885.
* | Merge pull request #32405 from yhirano55/use_turbolinks_in_guideRafael França2018-09-061-19/+14
|\ \ | | | | | | Use Turbolinks in Rails guides
| * | Use Turbolinks in Rails guidesYoshiyuki Hirano2018-04-231-19/+14
| | |
* | | [ci skip] Typo in form helpers guideNicolas Maloeuvre2018-08-301-1/+1
| | |
* | | Merge pull request #33751 from steves/add_retry_notifications_to_ajRafael França2018-08-301-0/+24
|\ \ \ | | | | | | | | Add hooks to ActiveJob around retries and discards
| * | | Add hooks to ActiveJob around retries and discardsSteve S2018-08-291-0/+24
| | | |
* | | | Merge pull request #33637 from eileencodes/ar-connection-management-refactoringEileen M. Uchitelle2018-08-301-4/+28
|\ \ \ \ | | | | | | | | | | Refactor Active Record configurations
| * | | | Refactors Active Record connection managementEileen Uchitelle2018-08-301-4/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While the three-tier config makes it easier to define databases for multiple database applications, it quickly became clear to offer full support for multiple databases we need to change the way the connections hash was handled. A three-tier config means that when Rails needed to choose a default configuration (in the case a user doesn't ask for a specific configuration) it wasn't clear to Rails which the default was. I [bandaid fixed this so the rake tasks could work](#32271) but that fix wasn't correct because it actually doubled up the configuration hashes. Instead of attemping to manipulate the hashes @tenderlove and I decided that it made more sense if we converted the hashes to objects so we can easily ask those object questions. In a three tier config like this: ``` development: primary: database: "my_primary_db" animals: database; "my_animals_db" ``` We end up with an object like this: ``` @configurations=[ #<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10 @env_name="development",@spec_name="primary", @config={"adapter"=>"sqlite3", "database"=>"db/development.sqlite3"}>, #<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbdea90 @env_name="development",@spec_name="animals", @config={"adapter"=>"sqlite3", "database"=>"db/development.sqlite3"}> ]> ``` The configurations setter takes the database configuration set by your application and turns them into an `ActiveRecord::DatabaseConfigurations` object that has one getter - `@configurations` which is an array of all the database objects. The configurations getter returns this object by default since it acts like a hash in most of the cases we need. For example if you need to access the default `development` database we can simply request it as we did before: ``` ActiveRecord::Base.configurations["development"] ``` This will return primary development database configuration hash: ``` { "database" => "my_primary_db" } ``` Internally all of Active Record has been converted to use the new objects. I've built this to be backwards compatible but allow for accessing the hash if needed for a deprecation period. To get the original hash instead of the object you can either add `to_h` on the configurations call or pass `legacy: true` to `configurations. ``` ActiveRecord::Base.configurations.to_h => { "development => { "database" => "my_primary_db" } } ActiveRecord::Base.configurations(legacy: true) => { "development => { "database" => "my_primary_db" } } ``` The new configurations object allows us to iterate over the Active Record configurations without losing the known environment or specification name for that configuration. You can also select all the configs for an env or env and spec. With this we can always ask any object what environment it belongs to: ``` db_configs = ActiveRecord::Base.configurations.configurations_for("development") => #<ActiveRecord::DatabaseConfigurations:0x00007fd1acbdf800 @configurations=[ #<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbded10 @env_name="development",@spec_name="primary", @config={"adapter"=>"sqlite3", "database"=>"db/development.sqlite3"}>, #<ActiveRecord::DatabaseConfigurations::HashConfig:0x00007fd1acbdea90 @env_name="development",@spec_name="animals", @config={"adapter"=>"sqlite3", "database"=>"db/development.sqlite3"}> ]> db_config.env_name => "development" db_config.spec_name => "primary" db_config.config => { "adapter"=>"sqlite3", "database"=>"db/development.sqlite3" } ``` The configurations object is more flexible than the configurations hash and will allow us to build on top of the connection management in order to add support for primary/replica connections, sharding, and constructing queries for associations that live in multiple databases.