aboutsummaryrefslogtreecommitdiffstats
path: root/railties/guides/source/active_record_querying.textile
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2011-07-23 12:15:41 +0200
committerXavier Noria <fxn@hashref.com>2011-07-23 12:15:41 +0200
commitace3723d2fcb1a96d51c2c82050594129328d7c0 (patch)
treed95d16b7dfee13037987913ed71d1708b5484f15 /railties/guides/source/active_record_querying.textile
parent94978b9a46173b875bcb0d5cb724e5119e4aa8f4 (diff)
parent38310ab1a6f559860e25b0e28bef9560bb452ae6 (diff)
downloadrails-ace3723d2fcb1a96d51c2c82050594129328d7c0.tar.gz
rails-ace3723d2fcb1a96d51c2c82050594129328d7c0.tar.bz2
rails-ace3723d2fcb1a96d51c2c82050594129328d7c0.zip
Merge branch 'master' of git://github.com/lifo/docrails
Diffstat (limited to 'railties/guides/source/active_record_querying.textile')
-rw-r--r--railties/guides/source/active_record_querying.textile1
1 files changed, 1 insertions, 0 deletions
diff --git a/railties/guides/source/active_record_querying.textile b/railties/guides/source/active_record_querying.textile
index 082f9eda7d..8ea06d28aa 100644
--- a/railties/guides/source/active_record_querying.textile
+++ b/railties/guides/source/active_record_querying.textile
@@ -1016,6 +1016,7 @@ You can specify an exclamation point (<tt>!</tt>) on the end of the dynamic find
If you want to find both by name and locked, you can chain these finders together by simply typing +and+ between the fields. For example, +Client.find_by_first_name_and_locked("Ryan", true)+.
+WARNING: Up to and including Rails 3.1, when the number of arguments passed to a dynamic finder method is lesser than the number of fields, say <tt>Client.find_by_name_and_locked("Ryan")</tt>, the behavior is to pass +nil+ as the missing argument. This is *unintentional* and this behavior will be changed in Rails 3.2 to throw an +ArgumentError+.
There's another set of dynamic finders that let you find or create/initialize objects if they aren't found. These work in a similar fashion to the other finders and can be used like +find_or_create_by_first_name(params[:first_name])+. Using this will first perform a find and then create if the find returns +nil+. The SQL looks like this for +Client.find_or_create_by_first_name("Ryan")+: