Ruby on rails rspec在FactoryGirl创建的模型上找不到id
我有以下型号:Ruby on rails rspec在FactoryGirl创建的模型上找不到id,ruby-on-rails,rspec,factory-bot,Ruby On Rails,Rspec,Factory Bot,我有以下型号: class Game < ActiveRecord::Base validates_presence_of :team_b_id, :team_a_id def description Team.find(team_a_id).name + " vs " + Team.find(team_b_id).name end end 验证不起作用,因为它: “找不到id为1的团队” 这些是工厂: FactoryGirl.define do
class Game < ActiveRecord::Base
validates_presence_of :team_b_id, :team_a_id
def description
Team.find(team_a_id).name + " vs " + Team.find(team_b_id).name
end
end
验证不起作用,因为它:
“找不到id为1的团队”
这些是工厂:
FactoryGirl.define do
factory :game do |f|
f.team_a_id { 1 }
f.team_b_id { 2 }
end
end
FactoryGirl.define do
factory :team do |f|
f.name { "Team Name" }
end
end
由于您没有正确设置id,错误可能发生在描述函数中 尝试将代码更改为以下内容:
team_a_id = FactoryGirl.create(:team, name: "Team A").id
team_b_id = FactoryGirl.create(:team, name: "Team B").id
game = FactoryGirl.create(:game, team_a_id: team_a_id, team_b_id: team_b_id)
这应该在游戏模型中设置id。ruby 4,factory_girl_rails\n您已经定义了
f.team_a_id{1}
和f.team_b_id{2}
所以当您调用FactoryGirl.create(:team,name:“team a”)
它将自动接受这两个定义值,因此它同时具有团队id和团队id,因此这里没有验证失败的问题
team_a_id = FactoryGirl.create(:team, name: "Team A").id
team_b_id = FactoryGirl.create(:team, name: "Team B").id
game = FactoryGirl.create(:game, team_a_id: team_a_id, team_b_id: team_b_id)