Recentemente, tenho trabalhado no Help, que é uma ferramenta de suporte que está sendo construída por meio da plataforma Assembly .
Internamente, usamos UUIDs para tudo, mas para as interações voltadas para o usuário, queríamos bons números inteiros de id. Portanto, o que queremos é uma coluna inteira única de incremento automático. Baixo e eis que isso não existe no Postgres, tanto quanto eu posso dizer. Aproveitei a oportunidade para fazer algo que estou ansioso para fazer, criar uma joia.
Apresentando Sequential . Sequential é um plugin ActiveRecord thread-safe que oferece uma coluna inteira única de incremento automático realmente fácil de usar
Aqui está um exemplo de modo Rails para um widget:
class Widget < ActiveRecord::Base
include ActiveRecord::UUID
belongs_to :account
end
Vamos adicionar uma coluna inteira única de incremento automático ao widget que tem como escopo :account_id
:
class Widget < ActiveRecord::Base
include ActiveRecord::UUID
belongs_to :account
sequential scope: :account_id
end
Tudo que você precisa fazer agora é adicionar uma migração para criar a coluna. Por padrão, a coluna é chamada sequential_id, mas podemos substituí-la:
sequential column: :number, scope: :account_id
É isso, bom e simples. Confira: https://github.com/austinylin/sequential ougem install sequential
Muito obrigado a Pugio por sua ajuda na criação do Sequential .