이전에 has_and_belongs_to_many를 사용했으며 has_many : through로 변환했습니다. 다음은 많은 사용자가 게임을 즐길 수있는 게임 목록을 찾는 방법입니다. 이와 함께, 나는 .... game.users 및 user.games을 수행 할 수 있습니다has_many : 질문을 통해
class Game < ActiveRecord::Base
has_many :game_users, :dependent => :destroy
has_many :users, :through => :game_users, :uniq => true
end
class User < ActiveRecord::Base
has_many :game_users, :dependent => :destroy
has_many :games, :through => :game_users, :uniq => true
end
class GameUser < ActiveRecord::Base
belongs_to :game
belongs_to :user
end
그리고 조인 테이블에 대한 내 데이터베이스 마이그레이션 :
create_table :game_users, :id => false do |t|
t.column :game_id, :integer
t.column :user_id, :integer
t.column :player_index, :integer
end
내가 모든 확실히 확실하지 오전을 이 사실을 확인하는 데 도움주세요 :
의존성 => : 파괴가 정확합니까? 게임이나 사용자가 파괴되면 'game_users'조인 테이블 항목을 삭제하고 싶습니다. 그러나 게임을 삭제하면 사용자가 삭제되는 것을 원하지 않습니다. 그 반대도 마찬가지입니까?
유니 필드는 게임에 고유 사용자 만 포함되어 있으며 사용자는 고유 한 게임 만 포함한다고 가정합니다. 그 맞습니까?
이전과 같이 데이터베이스 이전에는 : id => false가 있습니다. 그것은 여전히 옳은 일입니까? 나는 콘솔에서 게임을 파괴하려고 시도했고, 실종 된 이드에 대한 불만을 얻었다. 그래서 나는 왜 그런지 추측하고 이유를 이해하려고 노력하고있다.
레일스 활성 레코드 연결이 매우 혼란 스럽습니다. 나는 그들이 있어야하기로되어 있지 않다고 생각한다!
당신의 사용법 : dependent => : 파괴가 정확합니다. –