0
레일스 프로젝트에서 사용자에게 연결된 여러 모델이 있는데 페이지에 표시된 모든 사용자 데이터를 가져 오려고 시도하는로드 문제가 있습니다. : 잘못된 값으로 검색을 포함합니다.
내 모델 선언
이 같은 종류의 모양 : 나는 폐쇄 투표에 대한 SQL 테이블에 점에 유의해야한다class User < ActiveRecord::Base
validates_presence_of :server_user_id
has_many :setup_notes, :foreign_key => "server_user_id"
has_many :closure_votes, :foreign_key => "user_id"
end
class SetupNote < ActiveRecord::Base
belongs_to :user, :foreign_key => "server_user_id"
end
, user_id
는 사용자의 테이블에 server_user_id
와 같은 값입니다.
레일 쿼리에서 :include
심볼을 사용하려고하면 user.server_user_id
을 통해 폐쇄 투표 및 설정 노트를 찾아야 할 때 검색 값으로 user.id
을 사용합니다. 즉,
me = User.first(:conditions => ["server_user_id = ?", 12610], :include => :setup_notes)
는 MySQL의 쿼리 빈 집합을 반환
SELECT `setup_notes`.* FROM `setup_notes` WHERE (`setup_notes`.server_user_id = 1)
를 생성합니다. 관련 SQL 쿼리를 보내도록 레일즈 쿼리/모델을 포맷하는 방법이 있습니까? 아니면 사용자와 관련된 모든 모델에 원시 쿼리를 작성해야합니까? 그렇다면 어떻게해야합니까?
감사합니다. 과 같이 primary_key와 옵션 : I은 사용자 모델 (즉, 사용자가 server_user_id
필드가) 제대로 이해하고
감사합니다! 내가 보아 왔던 레일즈 리소스가 전혀 없다는 암시는 전혀 없었다. – bourgtai