Pergunta

Se eu implementasse um sistema idêntico ao histórico de revisão de perguntas do Stackoverflow usando Rubi nos trilhos, o que eu precisaria fazer para conseguir isso? Estou criando um site que age como um wiki onde o conteúdo contribuído pelo usuário pode ser atualizado por outras pessoas. Eu preciso ser capaz de rastrear o histórico dessas mudanças, mas não estou familiarizado com como implementar isso.

Solução:

Em poucas palavras, a maneira como isso funciona é criar uma tabela extra para acompanhar as alterações. Cada linha da tabela possui um "instantâneo" dos dados como existia antes que o registro fosse alterado (ou apenas os dados que foram alterados).

Existem várias jóias Ruby que já fizeram a maior parte do trabalho. Aqui está uma lista de Gems que lidam com o histórico de versões/revisão. Parece Trilha de papel Atualmente é a jóia mais popular por fazer isso. Ryan Bates registrou um ferroviário fornecendo um Visão geral do uso da trilha de papel.

Foi útil?

Solução

Quando uma entrada é editada, você não exclui a entrada (antiga), basta adicionar uma nova entrada com um novo número de versão. Quando você deseja recuperar uma entrada para exibição, você escolhe aquele com o número mais alto da versão. Quando você deseja recuperar uma entrada para mostrar seu histórico de revisão, você escolhe todos eles e os classifica pelo número da versão.

Outras dicas

Eu sei que isso é velho, mas qualquer um que se depare com isso, você deve fazer o checkout Trilha de papel

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top