Adicionando uma coluna SNO de incrementação automática no andaime de trilhos?
-
19-09-2019 - |
Pergunta
Existe uma maneira pela qual eu possa criar uma coluna de número de série (SNO) através do andaime em trilhos que aumentam ao adicionar um registro, diminui na exclusão de um registro e não pode ser modificado manualmente?
Solução
Se você deseja criar uma coluna de resumo em um modelo, precisará colocar essa lógica em seus modelos. Não existe um método embutido para isso (como um campo de autoin -crement padrão), mas pode ser adicionado facilmente:
class Parent << ActiveRecord::Base
# Contains a field: summary_field
end
class Child << ActiveRecord::Base
after_save => :increment_summary
before_destroy => :decrement_summary
def increment_summary
Parent.find(self.id).summary_field.increment
end
def decrement_summary
Parent.find(self.id).summary_field.decrement
end
end
Outras dicas
Não está claro se há algum relacionamento envolvido, mas parece que o Counter_cache pode ser um bom ajuste.
UMA Episódio Railscast Fornece os exemplos de código e um tutorial em vídeo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow