Guilherme, para criar um segundo nível de aninhamento basta repetir o processo que fez para criar o departamento (dentro do produto) no próprio departamento. Crie um scaffold, adicione um id, etc. Porém, como você quer que cada valor de departamento tenha diversos tipo (nerd, series, vintage, etc, ou pra calças: sino, balonée, skinny, etc), vai precisar fazer a relação do id na tabela do tipo, tendo então uma lista de tipos no departamento.
Seria algo mais ou menos assim:
class Produto
belongs_to :departamento
end
class Departamento
has_many :tipos
end
class Tipo
belongs_to :departamento
end
E a tabela ficaria com os ids
mais ou menos assim:
produtos (
id
departamento_id
)
departamentos (
id
)
tipos (
id
departamento_id
)