Ruby on rails 验证失败,出现委派错误

Ruby on rails 验证失败,出现委派错误,ruby-on-rails,rspec,shoulda,Ruby On Rails,Rspec,Shoulda,我有以下模型 class WarehouseVariant < AB has_one :warehouse has_one :variant has_many :variant_cities end class VariantCity < AB belongs_to :warehouse_variant delegate :mrp_paise, :to => :warehouse_variant validates :variant_id, uniqu

我有以下模型

class WarehouseVariant < AB
  has_one :warehouse
  has_one :variant
  has_many :variant_cities
end

class VariantCity < AB
  belongs_to :warehouse_variant
  delegate :mrp_paise, :to => :warehouse_variant
  validates :variant_id, uniqueness: { scope: :city_id }
end
规范失败,出现以下错误:

模块::删除错误: 差异性#mrp分配给仓库#变量。mrp分配,但仓库#变量为零:#

问题是我插入了这样一个调试语句

它{binding.pry;应该是 验证(:variant\u id)的唯一性。作用域为(:city\u id)}

这里的variant_city有对象仓库_variant,但是当测试完成时,我得到了上面提到的错误

任何帮助都将不胜感激

编辑:

验证(:variant\u id)过程的存在

let!(:warehouse_variant) {create(:warehouse_variant) }
subject { create(:variant_city, max_discount_percent: 99.99, max_promotion_percent: 99.99, warehouse_variant: warehouse_variant) }

it { is_expected.to validate_uniqueness_of(:variant_id).scoped_to(:city_id)}