【发布时间】:2020-10-21 11:55:56
【问题描述】:
模型
class User < ApplicationRecord
has_many :tokens, :dependent => :destroy
class Profile < ApplicationRecord
belongs_to :user
belongs_to :token
class Token < ApplicationRecord
belongs_to :user
当我调用创建配置文件时:
- 创建一个 id=1、user_id=1、token_id=1 的配置文件
- 创建一个 id=1、user_id=2 的 Token
所以我创建了另一个 iD=2 的用户,但它应该是相同的 user_id=1 如果我尝试删除序列(:电子邮件),它会返回用户电子邮件唯一性的验证错误。
测试
it 'test' do
create(:profile)
end
工厂.rb
FactoryBot.define do
factory :user do
sequence(:email) { |n| "person#{n}@example.com" }
password {'blablabla'}
end
factory :token do
association :user, factory: :user
refresh_token {"XXXXX"}
end
factory :profile do
association :user, factory: :user
association :token, factory: :token
end
end
【问题讨论】:
-
我只会使用
email { FFaker::Internet.safe_email }(添加 ffaker gem),它会给你更好的测试数据,让你花时间做更好的事情,然后调试一个序列,恕我直言,这些问题充斥着这些问题. -
好的,我会考虑的。问题是我不想有两个不同的用户。它应该指向同一个用户。
标签: ruby-on-rails rspec factory-bot