Class ActiveRecord::Relation
In: lib/active_record/mass_assignment_security/relation.rb
Parent: Object

Methods

Public Instance methods

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'>

Like first_or_create but calls create! so an exception is raised if the created record is invalid.

Expects arguments in the same format as Base.create!.

Like first_or_create but calls new instead of create.

Expects arguments in the same format as Base.new.

[Validate]