Rails valides_uniqueness_of: escopo na chave estrangeira
-
12-11-2019 - |
Pergunta
Eu tenho um modelo "Produto" que pertence a "Loja" (que possui muitos "produtos").Quero validar a exclusividade do nome do produto, mas apenas dentro de cada loja.
Agora eu tenho isso:
class Product < ActiveRecord::Base
belongs_to :store
validates_uniqueness_of :name, :scope => :store_id
end
Quando executo um salvamento em qualquer produto agora, recebo:
SQLite3::ConstraintException: column name is not unique
Tenho certeza de que há um erro simples que estou cometendo aqui.Por favor, eduque-me.
Obrigado,
Harris
Solução
Parece que esse erro vem do SQLite, não do Rails.Verifique as restrições no nível do banco de dados - talvez você tenha adicionado uma restrição exclusiva em :name em vez de [:name, :store_id].
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow