Rails テストの実験を始めたばかりです。始められなくて困っています。
私の最初のテストでは、FactoryGirl 内で作成しているユーザーが必要です。しかし、私のモデルは招待状の存在を検証します。
class User
has_many :sent_invitations, :class_name => 'Invitation', :foreign_key => 'sender_id'
belongs_to :invitation
validates_presence_of :invitation_id
end
class Invitation
belongs_to :sender, :class_name => 'User'
has_one :recipient, :class_name => 'User'
end
FactoryGirl を使用して招待ユーザーを生成するにはどうすればよいですか?
いくつかのアプローチを試しましたが、関連付けが設定されていません。動作する可能性が最も高いと思われるものは、次のようなものです。
factory :invitation do
token "MyInvitationToken"
recipient_email "test@example.com"
factory :invited_user do
association :user, :factory => :user
end
end
factory :user do
email "test@example.com"
end
これは で失敗していValidation failed: Invitation is required
ます。
この FactoryGirl との関連付けを確立する正しい方法は何ですか?
ボーナス ポイントについては、どうすれば :invitation.recipient_email が sequencesequence(:recipient_email) { |n| "test#{n}@example.com" }
になるように変更でき、この値が反復ごとに Invitation_user の email 列に渡されるのでしょうか。