Com a entrada do Rails 4 alguns métodos mudaram. O métodos “mágicos” que a gente conhecia como find_all_by_name foram marcados como deprecated e serão removidos no Rails 4.1. Vamos ver alguns exemplos:

# Ao invés de usar os finders dinâmicos, agora usamos o where.

Rails 3: Person.find_all_by_first_name('John')
Rails 4: Person.where(first_name: 'John')

# apartir dai utilizamos podemos utilizar algumas métodos para filtrar mais
# First e Last
Person.where(first_name: 'John').first
Person.where(first_name: 'John').last

Find, create, initialize
Person.where(first_name: 'John').first_or_create
Person.where(first_name: 'John').first_or_create!
Person.where(first_name: 'John').first_or_initialize

Outros dois métodos que foram introduzidos no Rails 4 e ajudam bastante são o find_by e find_by!

Person.find_by(name: 'John')
Person.find_by!(name: 'John')

Esses métodos são equivalentes a fazer Person.where(name: 'John').first mas é uma forma mais limpa de escrever. A diferênca de usar a ! é que se ele não achar nada irá retornar um erro ActiveRecord::RecordNotFound