From 5c3eda874fc7f874c193b64df7fdb38380819619 Mon Sep 17 00:00:00 2001 From: Zachary Scott Date: Mon, 10 Feb 2014 23:29:33 -0800 Subject: Add tip about using RDoc's --pipe command to quickly test the output of a piece of documentation. This can be useful for trying out combinations of markup and code, as discussed in rails/rails@225bcad --- guides/source/api_documentation_guidelines.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'guides') diff --git a/guides/source/api_documentation_guidelines.md b/guides/source/api_documentation_guidelines.md index 295c471db9..261538d0be 100644 --- a/guides/source/api_documentation_guidelines.md +++ b/guides/source/api_documentation_guidelines.md @@ -215,6 +215,13 @@ ordinary method names, symbols, paths (with forward slashes), etc. Please use `...` for everything else, notably class or module names with a namespace as in `ActiveRecord::Base`. +You can quickly test the RDoc output with the following command: + +``` +$ echo "+:to_param+" | rdoc --pipe +#=>

:to_param

+``` + ### Regular Font When "true" and "false" are English words rather than Ruby keywords use a regular font: -- cgit v1.2.3 From 9b3be63ccaa60b3199558dc8aea542894d8aa70f Mon Sep 17 00:00:00 2001 From: Prakash Murthy Date: Wed, 19 Feb 2014 13:39:31 +0530 Subject: [ci skip] Close the meta tag with '/>' instead of '>' This change fixes the 42 instances of `end tag for "meta" omitted, but OMITTAG NO was specified` error message that comes up when the full railsguides are validated. Full error list at https://gist.github.com/prakashmurthy/9086679. --- guides/source/layout.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'guides') diff --git a/guides/source/layout.html.erb b/guides/source/layout.html.erb index 0513066f5a..1ac4e7f40c 100644 --- a/guides/source/layout.html.erb +++ b/guides/source/layout.html.erb @@ -4,7 +4,7 @@ - + <%= yield(:page_title) || 'Ruby on Rails Guides' %> -- cgit v1.2.3 From 25ce856c3ea8beb864994b4b13df07b48574df9b Mon Sep 17 00:00:00 2001 From: Arun Agrawal Date: Wed, 19 Feb 2014 22:59:32 +0100 Subject: Pointing to latest guides [ci skip] --- guides/source/_welcome.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'guides') diff --git a/guides/source/_welcome.html.erb b/guides/source/_welcome.html.erb index 27c53689c4..9fd930963a 100644 --- a/guides/source/_welcome.html.erb +++ b/guides/source/_welcome.html.erb @@ -15,7 +15,7 @@

<% end %>

- The guides for Rails 3.2.x are available at http://guides.rubyonrails.org/v3.2.16/. + The guides for Rails 3.2.x are available at http://guides.rubyonrails.org/v3.2.17/.

The guides for Rails 2.3.x are available at http://guides.rubyonrails.org/v2.3.11/. -- cgit v1.2.3 From fa8d35b4eb06b09444ba525f84738043df7aac9f Mon Sep 17 00:00:00 2001 From: Greg Molnar Date: Thu, 20 Feb 2014 14:04:53 +0100 Subject: change 'assert !' to 'assert_not' in guides [ci skip] --- guides/source/testing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'guides') diff --git a/guides/source/testing.md b/guides/source/testing.md index 07f3aad1e6..aa37115d14 100644 --- a/guides/source/testing.md +++ b/guides/source/testing.md @@ -248,7 +248,7 @@ To see how a test failure is reported, you can add a failing test to the `post_t ```ruby test "should not save post without title" do post = Post.new - assert !post.save + assert_not post.save end ``` @@ -272,7 +272,7 @@ In the output, `F` denotes a failure. You can see the corresponding trace shown ```ruby test "should not save post without title" do post = Post.new - assert !post.save, "Saved the post without a title" + assert_not post.save, "Saved the post without a title" end ``` @@ -943,7 +943,7 @@ class UserMailerTest < ActionMailer::TestCase # Send the email, then test that it got queued email = UserMailer.create_invite('me@example.com', 'friend@example.com', Time.now).deliver - assert !ActionMailer::Base.deliveries.empty? + assert_not ActionMailer::Base.deliveries.empty? # Test the body of the sent email contains what we expect it to assert_equal ['me@example.com'], email.from -- cgit v1.2.3 From b7aeab6a40353a7953d28daea24197fd6b656c8e Mon Sep 17 00:00:00 2001 From: Jingwen Owen Ou Date: Mon, 17 Feb 2014 12:05:00 -0800 Subject: [skip ci] Fix the javascript path in guide for asset modules --- guides/source/asset_pipeline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'guides') diff --git a/guides/source/asset_pipeline.md b/guides/source/asset_pipeline.md index fa2e57ff92..5bb895cb78 100644 --- a/guides/source/asset_pipeline.md +++ b/guides/source/asset_pipeline.md @@ -302,7 +302,7 @@ Sprockets uses files named `index` (with the relevant extensions) for a special purpose. For example, if you have a jQuery library with many modules, which is stored in -`lib/assets/library_name`, the file `lib/assets/library_name/index.js` serves as +`lib/assets/javascripts/library_name`, the file `lib/assets/javascripts/library_name/index.js` serves as the manifest for all files in this library. This file could include a list of all the required files in order, or a simple `require_tree` directive. -- cgit v1.2.3 From 5ce58dbcee710c67c69ca8908f0899e7ed3eb2a9 Mon Sep 17 00:00:00 2001 From: Kuldeep Aggarwal Date: Fri, 21 Feb 2014 01:05:26 +0530 Subject: [ci skip] update guides to new version of rails 3.2.x --- guides/source/upgrading_ruby_on_rails.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'guides') diff --git a/guides/source/upgrading_ruby_on_rails.md b/guides/source/upgrading_ruby_on_rails.md index af3580a85b..da124e21a4 100644 --- a/guides/source/upgrading_ruby_on_rails.md +++ b/guides/source/upgrading_ruby_on_rails.md @@ -669,7 +669,7 @@ Upgrading from Rails 3.1 to Rails 3.2 If your application is currently on any version of Rails older than 3.1.x, you should upgrade to Rails 3.1 before attempting an update to Rails 3.2. -The following changes are meant for upgrading your application to Rails 3.2.16, +The following changes are meant for upgrading your application to Rails 3.2.17, the last 3.2.x version of Rails. ### Gemfile @@ -677,7 +677,7 @@ the last 3.2.x version of Rails. Make the following changes to your `Gemfile`. ```ruby -gem 'rails', '3.2.16' +gem 'rails', '3.2.17' group :assets do gem 'sass-rails', '~> 3.2.6' -- cgit v1.2.3 From ac85125164c164c20c7f6fb0c3b4b07a854e4b29 Mon Sep 17 00:00:00 2001 From: ch33hau Date: Tue, 25 Feb 2014 11:04:08 +0800 Subject: [skip ci] Standardized punctuation. --- guides/source/plugins.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'guides') diff --git a/guides/source/plugins.md b/guides/source/plugins.md index 720ca5d117..fe4215839f 100644 --- a/guides/source/plugins.md +++ b/guides/source/plugins.md @@ -92,12 +92,12 @@ Run `rake` to run the test. This test should fail because we haven't implemented Great - now you are ready to start development. -In `lib/yaffle.rb`, add `require "yaffle/core_ext"`: +In `lib/yaffle.rb`, add `require 'yaffle/core_ext'`: ```ruby # yaffle/lib/yaffle.rb -require "yaffle/core_ext" +require 'yaffle/core_ext' module Yaffle end @@ -149,7 +149,7 @@ end ```ruby # yaffle/lib/yaffle.rb -require "yaffle/core_ext" +require 'yaffle/core_ext' require 'yaffle/acts_as_yaffle' module Yaffle -- cgit v1.2.3 From 71b3910a7d6c9c9a94af31510683390c2b3a1b23 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Tue, 25 Feb 2014 09:14:35 -0300 Subject: Point master changelogs to 4-1-stable branch Remove 4-1 related entries from master [ci skip] --- guides/CHANGELOG.md | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'guides') diff --git a/guides/CHANGELOG.md b/guides/CHANGELOG.md index 4cfc5b1f10..a7c215c295 100644 --- a/guides/CHANGELOG.md +++ b/guides/CHANGELOG.md @@ -1,13 +1 @@ -* Fixed missing line and shadow on service pages(404, 422, 500). - - *Dmitry Korotkov* - -* Removed repetitive th tags. Instead of them added one th tag with a colspan attribute. - - *Sıtkı Bağdat* - -* Added the Rails maintenance policy to the guides. - - *Matias Korhonen* - -Please check [4-0-stable](https://github.com/rails/rails/blob/4-0-stable/guides/CHANGELOG.md) for previous changes. +Please check [4-1-stable](https://github.com/rails/rails/blob/4-1-stable/guides/CHANGELOG.md) for previous changes. -- cgit v1.2.3 From c023a6f8c1e311f87e551857df8bda7f8131b969 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Tue, 25 Feb 2014 09:20:15 -0300 Subject: :scissors: [ci skip] --- guides/source/getting_started.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'guides') diff --git a/guides/source/getting_started.md b/guides/source/getting_started.md index a16b9ac8da..be318bf283 100644 --- a/guides/source/getting_started.md +++ b/guides/source/getting_started.md @@ -57,9 +57,9 @@ learned elsewhere, you may have a less happy experience. The Rails philosophy includes two major guiding principles: -* **Don't Repeat Yourself:** DRY is a principle of software development which +* **Don't Repeat Yourself:** DRY is a principle of software development which states that "Every piece of knowledge must have a single, unambiguous, authoritative - representation within a system." By not writing the same information over and over + representation within a system." By not writing the same information over and over again, our code is more maintainable, more extensible, and less buggy. * **Convention Over Configuration:** Rails has opinions about the best way to do many things in a web application, and defaults to this set of conventions, rather than @@ -1121,8 +1121,8 @@ via the `PATCH` HTTP method which is the HTTP method you're expected to use to The first parameter of the `form_tag` can be an object, say, `@article` which would cause the helper to fill in the form with the fields of the object. Passing in a -symbol (`:article`) with the same name as the instance variable (`@article`) also -automagically leads to the same behavior. This is what is happening here. More details +symbol (`:article`) with the same name as the instance variable (`@article`) also +automagically leads to the same behavior. This is what is happening here. More details can be found in [form_for documentation](http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for). Next we need to create the `update` action in @@ -1396,7 +1396,7 @@ class CreateComments < ActiveRecord::Migration t.text :body # this line adds an integer column called `article_id`. - t.references :article, index: true + t.references :article, index: true t.timestamps end -- cgit v1.2.3 From 7aa500d2edcc2a2990e7a72799661d4a1227d441 Mon Sep 17 00:00:00 2001 From: Carlos Antonio da Silva Date: Tue, 25 Feb 2014 09:37:21 -0300 Subject: Optimize getting started guide images, and use png instead of jpg We noticed the rails gem increased in size between the beta and rc versions, and the reason is that some guides images were updated but not properly optimized, and one image changed from png to jpg, way bigger. Converting the jpg image back to png, and using ImageOptim to optimize all the images for web view, improves the situation [ci skip]. --- In current master/4-1-stable: 508K guides/assets/images/getting_started/ In v4.1.0.beta1: 268K guides/assets/images/getting_started/ In 4-0-stable 328K guides/assets/images/getting_started/ After the patch: 260K guides/assets/images/getting_started/ --- .../getting_started/article_with_comments.png | Bin 25229 -> 15190 bytes guides/assets/images/getting_started/challenge.png | Bin 30248 -> 21690 bytes .../images/getting_started/confirm_dialog.png | Bin 26420 -> 18809 bytes .../forbidden_attributes_for_new_article.png | Bin 15598 -> 10783 bytes .../images/getting_started/form_with_errors.png | Bin 18076 -> 12447 bytes .../getting_started/index_action_with_edit_link.png | Bin 18024 -> 10209 bytes .../assets/images/getting_started/new_article.png | Bin 9387 -> 3579 bytes .../assets/images/getting_started/rails_welcome.jpg | Bin 293182 -> 0 bytes .../assets/images/getting_started/rails_welcome.png | Bin 0 -> 94542 bytes .../getting_started/routing_error_no_controller.png | Bin 6108 -> 4186 bytes .../routing_error_no_route_matches.png | Bin 6195 -> 5913 bytes .../getting_started/show_action_for_articles.png | Bin 2991 -> 2965 bytes .../template_is_missing_articles_new.png | Bin 10138 -> 6174 bytes .../unknown_action_create_for_articles.png | Bin 7594 -> 5327 bytes .../unknown_action_new_for_articles.png | Bin 7858 -> 5481 bytes guides/source/getting_started.md | 2 +- 16 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 guides/assets/images/getting_started/rails_welcome.jpg create mode 100644 guides/assets/images/getting_started/rails_welcome.png (limited to 'guides') diff --git a/guides/assets/images/getting_started/article_with_comments.png b/guides/assets/images/getting_started/article_with_comments.png index 1918e9bf28..117a78a39f 100644 Binary files a/guides/assets/images/getting_started/article_with_comments.png and b/guides/assets/images/getting_started/article_with_comments.png differ diff --git a/guides/assets/images/getting_started/challenge.png b/guides/assets/images/getting_started/challenge.png index cc12162677..5b88a842b2 100644 Binary files a/guides/assets/images/getting_started/challenge.png and b/guides/assets/images/getting_started/challenge.png differ diff --git a/guides/assets/images/getting_started/confirm_dialog.png b/guides/assets/images/getting_started/confirm_dialog.png index e57d4b409e..9755f581a6 100644 Binary files a/guides/assets/images/getting_started/confirm_dialog.png and b/guides/assets/images/getting_started/confirm_dialog.png differ diff --git a/guides/assets/images/getting_started/forbidden_attributes_for_new_article.png b/guides/assets/images/getting_started/forbidden_attributes_for_new_article.png index e263f7f8b2..9f32c68472 100644 Binary files a/guides/assets/images/getting_started/forbidden_attributes_for_new_article.png and b/guides/assets/images/getting_started/forbidden_attributes_for_new_article.png differ diff --git a/guides/assets/images/getting_started/form_with_errors.png b/guides/assets/images/getting_started/form_with_errors.png index 04ff8b1e2d..98bff37d4a 100644 Binary files a/guides/assets/images/getting_started/form_with_errors.png and b/guides/assets/images/getting_started/form_with_errors.png differ diff --git a/guides/assets/images/getting_started/index_action_with_edit_link.png b/guides/assets/images/getting_started/index_action_with_edit_link.png index 22f994d993..0566a3ffde 100644 Binary files a/guides/assets/images/getting_started/index_action_with_edit_link.png and b/guides/assets/images/getting_started/index_action_with_edit_link.png differ diff --git a/guides/assets/images/getting_started/new_article.png b/guides/assets/images/getting_started/new_article.png index 89fc0b2605..bd3ae4fa67 100644 Binary files a/guides/assets/images/getting_started/new_article.png and b/guides/assets/images/getting_started/new_article.png differ diff --git a/guides/assets/images/getting_started/rails_welcome.jpg b/guides/assets/images/getting_started/rails_welcome.jpg deleted file mode 100644 index 65a44cdfe5..0000000000 Binary files a/guides/assets/images/getting_started/rails_welcome.jpg and /dev/null differ diff --git a/guides/assets/images/getting_started/rails_welcome.png b/guides/assets/images/getting_started/rails_welcome.png new file mode 100644 index 0000000000..3e07c948a0 Binary files /dev/null and b/guides/assets/images/getting_started/rails_welcome.png differ diff --git a/guides/assets/images/getting_started/routing_error_no_controller.png b/guides/assets/images/getting_started/routing_error_no_controller.png index ae83b6a68c..ed62862291 100644 Binary files a/guides/assets/images/getting_started/routing_error_no_controller.png and b/guides/assets/images/getting_started/routing_error_no_controller.png differ diff --git a/guides/assets/images/getting_started/routing_error_no_route_matches.png b/guides/assets/images/getting_started/routing_error_no_route_matches.png index 1cbddfa0f1..08c54f921f 100644 Binary files a/guides/assets/images/getting_started/routing_error_no_route_matches.png and b/guides/assets/images/getting_started/routing_error_no_route_matches.png differ diff --git a/guides/assets/images/getting_started/show_action_for_articles.png b/guides/assets/images/getting_started/show_action_for_articles.png index 9467df6a07..4dad704f89 100644 Binary files a/guides/assets/images/getting_started/show_action_for_articles.png and b/guides/assets/images/getting_started/show_action_for_articles.png differ diff --git a/guides/assets/images/getting_started/template_is_missing_articles_new.png b/guides/assets/images/getting_started/template_is_missing_articles_new.png index ba630cfc23..4e636d09ff 100644 Binary files a/guides/assets/images/getting_started/template_is_missing_articles_new.png and b/guides/assets/images/getting_started/template_is_missing_articles_new.png differ diff --git a/guides/assets/images/getting_started/unknown_action_create_for_articles.png b/guides/assets/images/getting_started/unknown_action_create_for_articles.png index ed89c4f3d7..fd20cd53dc 100644 Binary files a/guides/assets/images/getting_started/unknown_action_create_for_articles.png and b/guides/assets/images/getting_started/unknown_action_create_for_articles.png differ diff --git a/guides/assets/images/getting_started/unknown_action_new_for_articles.png b/guides/assets/images/getting_started/unknown_action_new_for_articles.png index e8f2b9a16a..e948a51e4a 100644 Binary files a/guides/assets/images/getting_started/unknown_action_new_for_articles.png and b/guides/assets/images/getting_started/unknown_action_new_for_articles.png differ diff --git a/guides/source/getting_started.md b/guides/source/getting_started.md index be318bf283..3ef9e04a02 100644 --- a/guides/source/getting_started.md +++ b/guides/source/getting_started.md @@ -206,7 +206,7 @@ This will fire up WEBrick, a web server distributed with Ruby by default. To see your application in action, open a browser window and navigate to . You should see the Rails default information page: -![Welcome aboard screenshot](images/getting_started/rails_welcome.jpg) +![Welcome aboard screenshot](images/getting_started/rails_welcome.png) TIP: To stop the web server, hit Ctrl+C in the terminal window where it's running. To verify the server has stopped you should see your command prompt -- cgit v1.2.3 From 53f1ab523bbf4f1764e3e24f26c4ed1db61b69e7 Mon Sep 17 00:00:00 2001 From: "T.J. Schuck" Date: Fri, 21 Feb 2014 15:58:09 -0500 Subject: Bump version of bcrypt gem --- guides/code/getting_started/Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'guides') diff --git a/guides/code/getting_started/Gemfile b/guides/code/getting_started/Gemfile index ecb6e7aa1a..c3d7e96c4d 100644 --- a/guides/code/getting_started/Gemfile +++ b/guides/code/getting_started/Gemfile @@ -27,7 +27,7 @@ gem 'sdoc', '~> 0.4.0', group: :doc gem 'spring', group: :development # Use ActiveModel has_secure_password -# gem 'bcrypt-ruby', '~> 3.1.2' +# gem 'bcrypt', '~> 3.1.7' # Use unicorn as the app server # gem 'unicorn' -- cgit v1.2.3 From a2d80417376c6ca18275a702553d2db2af25bf1f Mon Sep 17 00:00:00 2001 From: Luke Steensen Date: Wed, 26 Feb 2014 08:35:06 -0600 Subject: [ci skip] remove guide section on models in migrations Both examples given are incorrect, and no one can seem to come up with a realistic situation where this is an actual problem. For now, it seems like the best thing to do is just scrap the section altogether. --- guides/source/migrations.md | 153 -------------------------------------------- 1 file changed, 153 deletions(-) (limited to 'guides') diff --git a/guides/source/migrations.md b/guides/source/migrations.md index 64c4e1e07e..05443d5a5f 100644 --- a/guides/source/migrations.md +++ b/guides/source/migrations.md @@ -818,159 +818,6 @@ The `revert` method can be helpful when writing a new migration to undo previous migrations in whole or in part (see [Reverting Previous Migrations](#reverting-previous-migrations) above). -Using Models in Your Migrations -------------------------------- - -When creating or updating data in a migration it is often tempting to use one -of your models. After all, they exist to provide easy access to the underlying -data. This can be done, but some caution should be observed. - -For example, problems occur when the model uses database columns which are (1) -not currently in the database and (2) will be created by this or a subsequent -migration. - -Consider this example, where Alice and Bob are working on the same code base -which contains a `Product` model: - -Bob goes on vacation. - -Alice creates a migration for the `products` table which adds a new column and -initializes it: - -```ruby -# db/migrate/20100513121110_add_flag_to_product.rb - -class AddFlagToProduct < ActiveRecord::Migration - def change - add_column :products, :flag, :boolean - reversible do |dir| - dir.up { Product.update_all flag: false } - end - end -end -``` - -She also adds a validation to the `Product` model for the new column: - -```ruby -# app/models/product.rb - -class Product < ActiveRecord::Base - validates :flag, inclusion: { in: [true, false] } -end -``` - -Alice adds a second migration which adds another column to the `products` -table and initializes it: - -```ruby -# db/migrate/20100515121110_add_fuzz_to_product.rb - -class AddFuzzToProduct < ActiveRecord::Migration - def change - add_column :products, :fuzz, :string - reversible do |dir| - dir.up { Product.update_all fuzz: 'fuzzy' } - end - end -end -``` - -She also adds a validation to the `Product` model for the new column: - -```ruby -# app/models/product.rb - -class Product < ActiveRecord::Base - validates :flag, inclusion: { in: [true, false] } - validates :fuzz, presence: true -end -``` - -Both migrations work for Alice. - -Bob comes back from vacation and: - -* Updates the source - which contains both migrations and the latest version - of the Product model. -* Runs outstanding migrations with `rake db:migrate`, which - includes the one that updates the `Product` model. - -The migration crashes because when the model attempts to save, it tries to -validate the second added column, which is not in the database when the _first_ -migration runs: - -``` -rake aborted! -An error has occurred, this and all later migrations canceled: - -undefined method `fuzz' for # -``` - -A fix for this is to create a local model within the migration. This keeps -Rails from running the validations, so that the migrations run to completion. - -When using a local model, it's a good idea to call -`Product.reset_column_information` to refresh the Active Record cache for the -`Product` model prior to updating data in the database. - -If Alice had done this instead, there would have been no problem: - -```ruby -# db/migrate/20100513121110_add_flag_to_product.rb - -class AddFlagToProduct < ActiveRecord::Migration - class Product < ActiveRecord::Base - end - - def change - add_column :products, :flag, :boolean - Product.reset_column_information - reversible do |dir| - dir.up { Product.update_all flag: false } - end - end -end -``` - -```ruby -# db/migrate/20100515121110_add_fuzz_to_product.rb - -class AddFuzzToProduct < ActiveRecord::Migration - class Product < ActiveRecord::Base - end - - def change - add_column :products, :fuzz, :string - Product.reset_column_information - reversible do |dir| - dir.up { Product.update_all fuzz: 'fuzzy' } - end - end -end -``` - -There are other ways in which the above example could have gone badly. - -For example, imagine that Alice creates a migration that selectively -updates the `description` field on certain products. She runs the -migration, commits the code, and then begins working on the next feature, -which is to add a new column `fuzz` to the products table. - -She creates two migrations for this new feature, one which adds the new -column, and a second which selectively updates the `fuzz` column based on -other product attributes. - -These migrations run just fine, but when Bob comes back from his vacation -and calls `rake db:migrate` to run all the outstanding migrations, he gets a -subtle bug: The descriptions have defaults, and the `fuzz` column is present, -but `fuzz` is `nil` on all products. - -The solution is again to use `Product.reset_column_information` before -referencing the Product model in a migration, ensuring the Active Record's -knowledge of the table structure is current before manipulating data in those -records. - Schema Dumping and You ---------------------- -- cgit v1.2.3