2011-10-11 3 views
0

나는이 외래 키가 하나 개의 모델 : 쇼 외래 키 값은 대답

class Hotel < ActiveRecord::Base 
    belongs_to :country 

    scope :country, lambda { |country_id| 
    self.scoped.where('country_id IN (?)', country_id) unless country_id.blank? 
    } 

end 

그리고 내 컨트롤러에서

, 내가 이렇게을 :

def filter 
    @hotels = Hotel.scoped 
    @hotels = @hotels.country(params[:country_id]) unless params[:country_id].blank? 
    count = @hotels.count 
    render :json => ['hotels' => @hotels, 'count' => count ] 
end 

하지만 내 JSON 응답은있다 값을 country_id 내 contry 엔티티, 어떻게 강제로 할 수 있습니까?

감사합니다.

답변

0

, 내 컨트롤러에서 사용할 수 있습니다

render :json => ['hotels' => @hotels, 'count' => count ], :include=> [:country, :city] 

이 내 JSON 응답 내 도시와 국가 모델을 추가합니다 : 매개 변수를 포함시킵니다.

감사합니다.

1

"국가"는 범위와 마찬가지로 모든 호텔에서 사용합니다. 이것은 정확하지 않습니다. country_id에 속한 모든 호텔을 찾으려고한다고 가정합니다. 다음과 같이 할 수 있습니다.

@country = Country.find(params[:country_id])  
render :json => ['hotels' => @country.hotels, 'country' => @country] 

문제가 해결 되었습니까? 귀하의 질문은 약간 혼란 스럽습니다. 내 대답을

+0

아니요, 호텔의 범위를 사용하여 한 국가에서 필터링합니다. 내 질문이 업데이트되었습니다. – Sebastien

+0

범위의 이름을 연관으로 지정할 수 없습니다. – bricker

+0

고맙습니다. 하지만 내 문제가 해결되지 않습니다 :) – Sebastien