method
first_or_create
v3.2.8 -
Show latest stable
-
0 notes -
Class: ActiveRecord::Relation
- 1.0.0
- 1.1.0
- 1.1.1
- 1.1.6
- 1.2.0
- 1.2.6
- 2.0.0
- 2.0.1
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.2
- 2.3.8
- 3.0.0
- 3.0.5
- 3.0.7
- 3.0.9
- 3.1.0
- 3.2.1 (0)
- 3.2.3 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- What's this?
first_or_create(attributes = nil, options = {}, &block)
public
Tries to load the first record; if it fails, then create is called with the same arguments as this method.
Expects arguments in the same format as Base.create.
Examples
# Find the first user named Penélope or create a new one. User.where(:first_name => 'Penélope').first_or_create # => <User id: 1, first_name: 'Penélope', last_name: nil> # Find the first user named Penélope or create a new one. # We already have one so the existing record will be returned. User.where(:first_name => 'Penélope').first_or_create # => <User id: 1, first_name: 'Penélope', last_name: nil> # Find the first user named Scarlett or create a new one with a particular last name. User.where(:first_name => 'Scarlett').first_or_create(:last_name => 'Johansson') # => <User id: 2, first_name: 'Scarlett', last_name: 'Johansson'> # Find the first user named Scarlett or create a new one with a different last name. # We already have one so the existing record will be returned. User.where(:first_name => 'Scarlett').first_or_create do |user| user.last_name = "O'Hara" end # => <User id: 2, first_name: 'Scarlett', last_name: 'Johansson'>


