Associações de colunas de tabela única (STI)
-
18-09-2019 - |
Pergunta
Ao usar a herança de tabela única, é preciso ter cuidado para não preencher as colunas específicas para diferentes modelos? Existe uma maneira de especificar quais colunas cada modelo usa?
Solução
No que diz respeito a Rails, todas as colunas podem ser definidas em todas as subclasse. Você pode adicionar lógica aos seus modelos de subclasse para impedir que certos campos sejam definidos, mas não há uma maneira automatizada de fazê -lo. Você provavelmente poderia implementá -lo tem um before_save
filtro.
class MySubModel < MyModel
UNUSED_FIELDS = %w{ field_x field_y field_z }
def before_save
UNUSED_FIELDS.each {|f| self.send("#{f}=", nil)}
end
end
Embora se você tiver muitas colunas que são usadas apenas por uma subclasse, o STI provavelmente não é o melhor modelo de herança a ser usado.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow