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?

Foi útil?

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
scroll top