나는 이것이 사소한 일일 수 있다고 생각했지만 그렇게 할 수 없다.기본 키 - 루비 레일에 의한 해시 액세스
내 현재 코드는 다음과 같습니다
@player_types = squad.player_types
지금 아이디에 대한 루프 및 조회,
params[:player_types].each do |p_type|
@player_types.find(p_type[:id])
end
이유는 무엇입니까 @player_types.find(p_type[:id])
내가 서버 로그를 보면하여 select
쿼리를 실행해야합니다, 나는 이것을 적재했다. 그것은 게으른 평가 때문이며 시작시 모든 것을로드하고 해시의 인덱스로 액세스하는 방법이 있습니까? player_types
테이블이
ids = params[:player_types].map {|v| v[:id] }
@player_types.where(@player_types.class.arel_table[:id].in(ids))
시작시에 everithing을로드하는 것을 의미합니까? 그게 뭐지? ** 무슨 일이야? –
나는 당신의 코드가 더 많은 문맥을 필요로한다고 생각한다. 원하는 결과 세트,이 코드와 관련된 컨트롤러 조치 및 params [: player_types]의 데이터 유형을 설명해야합니다. – sealocal
왜 '@ player_types'를 직접 찾아 보지 않으시겠습니까? 'player_types'는 PlayerType' 모델을 가진 테이블입니까? 'params [: player_types]'는 배열입니까? – sealocal