Mam model użytkownika i model obserwatora, taki, że użytkownik może mieć wielu obserwujących. Tak więc w schemacie modelu follower mam kolumnę user_id i kolumnę follower_by_user_id. Tak więc w modelu naśladowcy użytkownik może być śledzony przez wielu obserwatorów. Identyfikator użytkownika jest przechowywany w kolumnie user_id, a id_śladowcy, których id są przechowywane jako follow_by_user_id.Jak obsłużyć klucz obcy w FactoryGirl
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
Powyżej jest model użytkownika
class 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
powyżej jest zwolennikiem modelu
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 jest w zasadzie tylko identyfikator użytkownika, czy można powiedzieć, user_id jest klucz obcy dla followed_by_user_id kolumnie. Im plain English follow_by_user_id jest identyfikatorem użytkownika, który podąża za innym użytkownikiem. Więc jeśli jakikolwiek organ może pomóc, aby włączyć tę relację klucza obcego w fabrykę obserwatorów dla kolumny follower_by_user_id?
Z góry dziękuję.
Dziękuję bardzo ... To uratowało mi życie. –