Ruby on Rails 애플리케이션에서 코드가 직접 many-to-many 조인 테이블에 직접 액세스한다. 이는 has_many와 : has_many : through 관계를 통해 생성 된 정상적인 연관과 메소드를 우회하기 때문에 코드의 일부를 수정하는 것을 매우 어렵게 만든다.many-to-many 조인 테이블에 직접 액세스해야하는 이유는 무엇입니까?
제 질문은 간단합니다. 수행 할 수있는 허용 가능한 작업입니까, 아니면이를 피할 수 있습니까?
내 생각에 데이터베이스 관점에서, 조인 테이블은 논리보기에 존재하지 않습니다. 따라서 직접 액세스 할 수있는 이유가 없어야합니다. 사람들은 단지 그들이 존재한다는 것을 무시하고 프레임 워크가 그것들을 돌 보도록해야합니다.
다른 사람들의 생각은 무엇입니까?
Person { name }
Group { name }
PersonGroup { person_id, group_id, membership_state }
PersonGroup.find(:all, :conditions => {:membership_state => 'pending'} }
을 내가 대신 조인 테이블을 사용하여 생각하고 한 범위 그룹에 요청을 대신해야하고 찾을 : 다음은 지금까지 코드에 표시하는 경우는
, 나는 궁금를 더 정확하게하려면 모든 보류중인 회원들을 그렇게합니다.
나는 내 질문에 약간 불분명했다. 필자는 테이블에 직접 액세스하지 않고 join 테이블을 나타 내기 위해 activerecord 모델을 사용하는 것에 대해 언급하고 있습니다. –
PersonGroup이 조인 테이블이 아닌 state가있는 객체 (이 경우 membership_state)로 작동하기 때문에 이는 많은 의미가 있습니다. 이름이 지정된 범위가 아닌 자체 개체가되는 것이 틀림 없습니다. –