Bir kullanıcı modelim ve bir takipçi modelim var, böylece bir kullanıcı çok sayıda takipçiye sahip olabilir. Bu nedenle, takipçi modelinin şemasında user_id sütunu ve bir follower_by_user_id sütunu var. Böylece takipçi modelinde bir kullanıcı birçok takipçisi tarafından takip edilebilir. Kullanıcı kimliği, user_id sütununda saklanır ve follower kimlikleri, kimlikleri follow_by_user_id olarak saklanır.FactoryGirl'de yabancı anahtar nasıl kullanılır
class User < ActiveRecord::Base
has_many :followed_users, :class_name => 'Follower', :foreign_key => 'user_id'
has_many :followers, :class_name => 'Follower', :foreign_key => 'followed_by_user_id'
validates :email, presence: true, format:{ with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i}
validates :name,presence:true
end
Üstü yukarıda
FactoryGirl.define do
factory :user do
name {Faker::Name.name}
email {Faker::Internet.email}
end
factory :follower do
user
followed_by_user_id
end
followed_by_user_id sadece temelde bir kullanıcı kimliği olan takipçi modeli
Kullanıcı modeliclass Follower < ActiveRecord::Base
belongs_to :user
belongs_to :followed_by_user, :class_name => 'User', :foreign_key => 'followed_by_user_id'
validates :user, :followed_by_user, presence:true
validates_associated :user, :followed_by_user
end
, ya biz user_id followed_by_user_id sütun için yabancı anahtar olduğunu söyleyebiliriz. Ben düz İngilizce olan follow_by_user_id, başka bir kullanıcıya izleyen bir kullanıcının kimliğidir. Yani herhangi bir vücut follower_by_user_id sütun için follower fabrikada bu yabancı anahtar ilişki nasıl dahil yardımcı olabilir?
Şimdiden teşekkürler.
association :followed_by_user, factory: :user
Çok teşekkür ederim. Hayatımı kurtardı. –