find_or_create-type methods on ActiveRecord scopes
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.document
.gitignore
.rspec
.ruby-gemset
.ruby-version
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
VERSION
find_or_create_on_scopes.gemspec

README.md

find_or_create_on_scopes

Conditional creators for ActiveRecord

Author Tim Morgan
Version 1.2 (Sep 12, 2011)
License Released under the MIT license.

About

find_or_create_on_scopes adds handy find_or_create-type methods to ActiveRecord. You can use these methods to conditionally create, initialize, or update records depending on the presence of similar records. They work on your base model class and any scopes derived therefrom. (See Usage for examples.)

Installation

Important Note: This gem requires Ruby 1.9+. Ruby 1.8 is not and will never be supported.

To install, simply add the find_or_create_on_scopes gem to your Rails application's Gemfile:

gem 'find_or_create_on_scopes'

Usage

See the {FindOrCreateOnScopes} module documentation for the complete list of conditional creators/updaters. Some basic examples to give you an overview:

# Tries to find a user named 'riscfuture'. If such a User exists, returns it. If
# not, creates a user and sets its password to '123'.
User.where(login: 'riscfuture').find_or_create(password: '123')

# Tries to find a user named 'riscfuture'. If such a User exists, updates its
# password to '123'. If not, creates a new user and sets its password to '123'.
# Raises an exception if validation fails.
User.where(login: 'riscfuture').create_or_update!(password: '123')