문제

다음과 같은 두 가지 모델이 설정되어 있습니다.

class User < ActiveRecord::Base
  # external_id column in database
end

class UserUpload < ActiveRecord::Base
  belongs_to :user, :primary_key => "external_id", :foreign_key => "external_user_id"
end

그러나 내가 할 때마다

upload = UserUpload.find(id, :include => :user)

방출되는 SQL은 항상 ID를 찾고 있습니다 (및 Zeros 사용).

select * from users where id in (0,0,0,0 ... 0,0)

내가 뭔가 잘못하고 있거나 사용하는 데 문제가 있습니까? foreign_keys 안에 belongs_to 과의 관계 include?

도움이 되었습니까?

해결책

나는 방금이 같은 문제에 부딪쳤다. 거기에 반점 Rails 2.3.5 on에 적용됩니다 버그 #3208 그러나 그것은 적용되지 않았습니다 2-3 안정 아직 지점.

나는 a 원숭이 패치 이 버그의 경우 내 앱에서 성능 문제가 발생합니다. 장소 fix_belongs_to_include_with_primary_key.rb 당신의 config/inititalizers 디렉토리 및 앱을 다시 시작하여 적용하십시오.

다른 팁

왜 그런지 모르겠지만 옵션 :include 안에 named_scope 만든다 belongs_to ~와 함께 foreign_key 일하고 있는.

named_scope :my_all, :include => :user
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top