mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add documentation for find_or_create_by_{attribute}! method.
This commit is contained in:
parent
eee32af45e
commit
ca99beb4a9
2 changed files with 5 additions and 0 deletions
|
@ -201,6 +201,9 @@ module ActiveRecord #:nodoc:
|
||||||
# # Now 'Bob' exist and is an 'admin'
|
# # Now 'Bob' exist and is an 'admin'
|
||||||
# User.find_or_create_by_name('Bob', :age => 40) { |u| u.admin = true }
|
# User.find_or_create_by_name('Bob', :age => 40) { |u| u.admin = true }
|
||||||
#
|
#
|
||||||
|
# Adding an exclamation point (!) on to the end of <tt>find_or_create_by_</tt> will
|
||||||
|
# raise an <tt>ActiveRecord::RecordInvalid</tt> error if the new record is invalid.
|
||||||
|
#
|
||||||
# Use the <tt>find_or_initialize_by_</tt> finder if you want to return a new record without
|
# Use the <tt>find_or_initialize_by_</tt> finder if you want to return a new record without
|
||||||
# saving it first. Protected attributes won't be set unless they are given in a block.
|
# saving it first. Protected attributes won't be set unless they are given in a block.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1133,6 +1133,8 @@ Client.where(:first_name => 'Andy').first_or_create!(:locked => false)
|
||||||
# => ActiveRecord::RecordInvalid: Validation failed: Orders count can't be blank
|
# => ActiveRecord::RecordInvalid: Validation failed: Orders count can't be blank
|
||||||
</ruby>
|
</ruby>
|
||||||
|
|
||||||
|
As with +first_or_create+ there is a +find_or_create_by!+ method but the +first_or_create!+ method is preferred for clarity.
|
||||||
|
|
||||||
h4. +first_or_initialize+
|
h4. +first_or_initialize+
|
||||||
|
|
||||||
The +first_or_initialize+ method will work just like +first_or_create+ but it will not call +create+ but +new+. This means that a new model instance will be created in memory but won't be saved to the database. Continuing with the +first_or_create+ example, we now want the client named 'Nick':
|
The +first_or_initialize+ method will work just like +first_or_create+ but it will not call +create+ but +new+. This means that a new model instance will be created in memory but won't be saved to the database. Continuing with the +first_or_create+ example, we now want the client named 'Nick':
|
||||||
|
|
Loading…
Reference in a new issue