Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 使用shoulda匹配器测试唯一性范围验证_Validation_Ruby On Rails 4_Unique_Shoulda - Fatal编程技术网

Validation 使用shoulda匹配器测试唯一性范围验证

Validation 使用shoulda匹配器测试唯一性范围验证,validation,ruby-on-rails-4,unique,shoulda,Validation,Ruby On Rails 4,Unique,Shoulda,我有一个模特 class ObjectiveConcept < ActiveRecord::Base validates :objective_id, presence: true validates :concept_id, presence: true validates :concept_id, uniqueness: {scope: :objective_id} belongs_to :objective belongs_to :concept end 当我

我有一个模特

class ObjectiveConcept < ActiveRecord::Base
  validates :objective_id, presence: true
  validates :concept_id, presence: true
  validates :concept_id, uniqueness: {scope: :objective_id}

  belongs_to :objective
  belongs_to :concept
end
当我运行唯一性规范时,我得到以下错误

 ObjectiveConcept#Validations should validate uniqueness of concept_id scoped to objective_id
 Failure/Error: should validate_uniqueness_of(:concept_id).scoped_to(:objective_id)
 ActiveRecord::StatementInvalid:
   PG::Error: ERROR:  null value in column "objective_id" violates not-null constraint
   DETAIL:  Failing row contains (20, null, 0, 2014-09-09 10:24:36.87583, 2014-09-09 10:24:36.87583).
   : INSERT INTO "objective_concepts" ("concept_id", "created_at", "objective_id", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"

我已按照“注意事项”部分的规定填写了唯一性验证的主题,但无效。我如何解决这个问题

通过从主题块中删除代码来修复它

取代

subject { FactoryGirl.create(:object_concept, concept_id: concept.id, objective_id: objective.id) } 

subject { FactoryGirl.create(:object_concept, concept_id: concept.id, objective_id: objective.id) } 
FactoryGirl.create(:object_concept, concept_id: concept.id, objective_id: objective.id)