[rails] 다 대다 중간 테이블 [to_table, class_name, through, source]
User ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー>
20210301082221_create_gifts_.rb
class CreateGifts < ActiveRecord::Migration[6.0]
def change
create_table :gifts do |t|
t.integer :price, null: false
t.references :giver, foreign_key: { to_table: :users }
t.references :receiver, foreign_key: { to_table: :profiles }
t.timestamps
end
end
end
gift.rb
class Gift < ApplicationRecord
belongs_to :giver, class_name: 'User', foreign_key: :giver_id
belongs_to :receiver, class_name: 'Profile', foreign_key: :receiver_id
end
user.rb
class User < ApplicationRecord
has_many :gifts, class_name: 'Gift', foreign_key: 'giver_id'
has_many :receivers, through: :gifts, source: :receiver
end
profile.rb
class Profile < ApplicationRecord
has_many :gifts, class_name: 'Gift', foreign_key: 'receiver_id'
has_many :givers, through: :gifts, source: :giver
end
foreign_key: { to_table: :users } users 테이블에서 참조하십시오.
class_name: 'User' User 클래스에서 참조하십시오.
through: :gifts gifts테이블을 통해
source: :giver giver모델이 참조원이야
foregin_key = 입구
source = 출구
라고 하는 기사를 봐 주셔서, 매우 알기 쉬웠습니다.
기사는 여기
Reference
이 문제에 관하여([rails] 다 대다 중간 테이블 [to_table, class_name, through, source]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yait/items/bf55bb95a27a7e106953텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)