반응형
Ruby on Rails - 여러 모델용 JSON 렌더링
JSON에서 여러 모델의 결과를 렌더링하려고 합니다.컨트롤러의 다음 코드는 첫 번째 결과 세트만 렌더링합니다.
def calculate_quote
@moulding = Moulding.find(params[:id])
@material_costs = MaterialCost.all
respond_to do |format|
format.json { render :json => @moulding }
format.json { render :json => @material_costs }
end
end
어떤 도움이라도 주시면 감사하겠습니다.
렌더링할 개체로 해시를 만든 다음 렌더링 메서드에 전달하는 방법이 있습니다.다음과 같은 경우:
respond_to do |format|
format.json { render :json => {:moulding => @moulding,
:material_costs => @material_costs }}
end
활성 레코드를 통해 모델을 연관지을 수 없는 경우, 이것이 가장 좋은 해결책일 수 있습니다.
어소시에이션이 존재하는 경우,:include
다음과 같이 렌더 콜에 대한 인수를 지정합니다.
respond_to do |format|
format.json { render :json => @moulding.to_json(:include => [:material_costs])}
end
주의: 이 명령어를 취득할 필요가 없습니다.@material_costs
위의 섹션의 변수(변수)는 이 접근 방식을 취하면 레일에서 자동으로 로딩됩니다.@moulding
변수.
컨트롤러는 1개의 응답만 반환할 수 있습니다.이러한 오브젝트를 모두 반송하려면 1개의 JSON 오브젝트에 배치해야 합니다.
그럼 어떻게 해?
def calculate_quote
@moulding = Moulding.find(params[:id])
@material_costs = MaterialCost.all
response = { :moulding => @moulding, :material_costs => @material_costs }
respond_to do |format|
format.json { render :json => response }
end
end
뭐랄까...
respond_to do |format|
format.html # show.html.erb
format.json { render :json => {:cancer_type => @cancer_type, :cancer_symptoms => @cancer_symptoms }}
결과는 이렇다
{"cancer_type":{"created_at":"2011-12-31T06:06:30Z","desc":"dfgeg","id":2,"location":"ddd","name":"edddd","sex":"ddd","updated_at":"2011-12-31T06:06:30Z"},"cancer_symptoms":[]}
그래서 효과가 있다.
감사합니다.
더 복잡한 예를 볼 수 없어서 나는 다음과 같이 말하고 싶었다.
def calculate_quote
moulding = Moulding.find(params[:id])
material_costs = MaterialCost.all
respond_to do |format|
# there times you'll need multiple formats, no need to overuse instance vars:
format.html do
@moulding = moulding
@material_costs = material_costs
end
format.json do
# in case of as_json, you can provide additional options
# to include associations or reduce payload.
moulding_json = moulding.as_json
material_costs_json = material_costs.as_json
render json: {
moulding: moulding_json,
material_costs: material_costs_json
}
end
end
end
언급URL : https://stackoverflow.com/questions/4318962/ruby-on-rails-render-json-for-multiple-models
반응형
'programing' 카테고리의 다른 글
Perl 데이터를 저장하려면 YAML 또는 JSON 중 어느 쪽을 사용해야 합니까? (0) | 2023.02.25 |
---|---|
WordPress에서 미디어 셀렉터를 add_settings_field에 추가하는 방법 (0) | 2023.02.25 |
MongoDB 정규화, 외부 키 및 가입 (0) | 2023.02.25 |
어레이의 필드 값으로 쿼리할 Firestore (0) | 2023.02.25 |
순수 css를 사용하는 다른 요소의 너비를 기준으로 스팬의 너비를 설정합니다. (0) | 2023.02.25 |