30 Kasım 2010, Salı
Ruby on Rails - çoklu modeller için Render JSON
JSON birden fazla model sonuçları işlemek için çalışıyorum. Benim denetleyicisi aşağıdaki kodu yalnızca ilk sonuç kümesini işler:
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
Herhangi bir yardım çok teşekkürler mutluluk duyacağız.
CEVAP
30 Kasım 2010, Salı
Bunu yapmak için bir yol oluşturmak için istediğiniz nesneleri bir karma oluşturmak ve işlemek yöntemine geçirin. Bunun gibi
respond_to do |format|
format.json { render :json => {:moulding => @moulding,
:material_costs => @material_costs }}
end
Eğer bu modeller aktif kayıt ile ilişkili değilse, bu muhtemelen en iyi çözüm.
Eğer bir ilişki yoksa, yani render çağrısı :include bir argüman iletebilirsiniz:
respond_to do |format|
format.json { render :json => @moulding.to_json(:include => [:material_costs])}
end
Eğer bu yaklaşım ise, Raylar otomatik olarak @moulding değişken yük olacak yukarıdaki bölümde @material_costs değişken almak gerekmez unutmayın.
Bunu PaylaÅŸ:

Nasıl Karma bir anahtarı kaldırın ve R...
Nasıl Ruby on Rails ile JSON ayrıştırm...
Nasıl ruby karma bir nesneyi JSON dönü...
Ruby/Rails: bir UNİX zaman damgası içi...
Global sabitleri tanımlamak için Nered...