2012-04-18 3 views
0

Listing 모델과 함께 내 레일 앱에 listing_controller가 있습니다. db는 이름, 위도, 경도 등으로 구성된 목록으로 구성됩니다.레일스 메소드 JSON 렌더링

호출자에게 JSON 개체를 호출해야하는 메서드가 내 listing_controller에 있습니다.

JSON 객체는 해당 Listings 모델에서 데이터를 가져와야합니다. 그러나 JSON 객체에 각 목록의 이름, 위도, 경도 만 포함하고 모델의 다른 속성은 포함하지 말아야합니다. 이것을 어떻게 제한 할 수 있습니까?

지금은 메서드가 JSON 객체를 반환하면 각 목록의 모든 속성을 포함합니다. 나는 rabl 보석 보는 것이 좋습니다

답변

1

방법에 대한 대체 :

@listings = Listing.order(:name) 

과 :

@listings = Listing.order(:name).select([:name, :latitude, :longitude]) 
+0

이것은 효과가 있습니다. 감사. – banditKing

0

def list 
@listings = Listing.order(:name) 
render :text=>(@listings).to_json() 

끝 :

다음은 현재 구현입니다. 그것은 쉽고 유연하게 json을 생성하는 템플릿 시스템입니다 (다른 것들 중에서도).

무료 railscast도 있습니다.

0

active_model_serializers 보석을 확인할 수 있습니다.

render :text => {name: @listing.name, lat:@listing.lat, long:@listing.long}.to_json 
+0

이 didn를 당신이 모든 것을 원하지 않는 경우

, 당신은 수동으로 해시를 만들 수 있습니다 불행히도 일하지 않아. – banditKing

관련 문제