Um método bem interessante do rails é o returning. Apesar de ser bem simples, ele ajuda a manter seu código mais limpo e mais fácil de entender (depois de pegar costume :P ).
Funciona mais ou menos assim:

Dado 2 argumentos, um objeto qualquer (arg1) e um bloco, o método repassa o objeto arg1 como parâmetro do bloco e ao final da execução do bloco, retorna o arg1 que pode ter sofrido alteração ou não.

Por exemplo, o seguinte método:

def published_titles(posts)
  titles = {}

  posts.each do |p|
    titles.merge!(p.id => p.title) if p.published?
  end

  titles
end

Poderia ser reescrito assim:

def published_titles(posts)
  returning(Hash.new) do |titles|
    posts.each { |p| titles.merge!(p.id => p.title) if p.published? }
  end
end

É isso. ;)


UPDATE
O Ceolin comentou comigo hoje que o returning seria “deprecated” no Rails 3. Isso é porque a partir do Ruby 1.9, a classe Object ganha um novo método (tap) que permite o desenvolvedor interagir em uma chamada de métodos em cadeia, por exemplo:

Users
  .all .tap {|users| puts "Usuários: #{users.map(&id)}"}
  .last.tap {|user| puts "Último usuário: #{user.name}"}
  .posts

Então, o nosso primeiro método poderia ser escrito, no Ruby 1.9, assim:

def published_titles(posts)
  Hash.new.tap do |titles|
    posts.each { |p| titles.merge!(p.id => p.title) if p.published? }
  end
end