Instalando gem Stringex for Rails? Não se esqueça de migrar

Eu estava configurando Stringex para meu modelo de usuário existente seguindo o Leiame (não há realmente nenhuma instrução de instalação) e achei que precisava adicionar a gema ao meu Gemfile:

# Gemfile
gem
"stringex"

E configurar meus modelos e controladores:

# user.rb
acts_as_url
:name, :sync_url => true

def to_param
url

end

# users_controller.rb
load_and_authorize_resource
:find_by => :url

Estou usando o CanCan aqui.

Então me ocorreu, quando recebi erros de roteamento:

ActionController::RoutingError at /users
No route matches {:action=>"show", :controller=>"users", :id=>#<User id: 1, email: ...

Acontece que você precisa adicionar algumas colunas primeiro:

$ rails g migration AddUrlToUsers url:string:uniq

# 20130404102715_add_url_to_users.rb
class AddUrlToUsers < ActiveRecord::Migration
def up
add_column
:users, :url, :string, :nil => false
add_index
:users, :url, :unique => true

# You'll want to generate the URLs for all existing users:
User.initialize_urls
end

def down
remove_index
:users, :url
remove_column
:users, :url
end
end

Mas isso é óbvio, não é?

Acompanhamento: Redirecionando rotas de ID antigas para novos slugs