2010-02-25 13 views
26

Açıkça bilinebilir, ancak hala temel bilgilerden yoksun.Raylar: format.js veya format.json veya ikisi birden?

Yani iç kontrolörler, hem kullanılabilir, ya da her zaman JavaScript, bu nedenle her ikisi de aynı mı?

+0

Her ikisinin de kullanılabileceğine inanıyorum çünkü bunlar ayrı MIME türleriydi. Neden denemiyorsun? –

cevap

23

yılında Raylar 3.1 Tek fark biçimlendirici js ise, o zaman cevap düz metin olarak gönderilir olmasıdır. Eğer json ise o zaman json olarak kodlanır.

eğer

format.json { 
    render :json => @accounts.map(&:attributes) 
} 

sunucu gönderme

format.json:

data:application/json;base64, 

eğer format.js

format.js { 
    render :json => @accounts.map(&:attributes) 
} 

sunucu gönderme:

[{"id":33,"email":"[email protected]"}] 
34

json ve js yanıtın iki farklı türü vardır ve bunlar Raylar Json JavaScript bir alt kümesi olarak düşünülebilir bile

Mime::Type.register "text/javascript", :js, %w(application/javascript application/x-javascript) 
Mime::Type.register "application/json", :json, %w(text/x-json application/jsonrequest) 

farklı MIME türleri olarak tanımlanmıştır değil, tüm JavaScript yanıtları aslında Json cevaplardır.

Json ve Js ile aynı eylemde yanıt vermek isteyebilirsiniz.

Örneğin, bir iç Ajax çağrısına bir API çağrısına ve JavaScript (belki kullanarak RJS) ile Json ile yanıt bir eylem olabilir. Ben spot

+3

Doğru cevap – Donato

İlgili konular