2012-09-07 17 views
9

ile yanıt verirken batman-raylar gemiyle node.js framework batman.js ile çalışan bir raylar uygulaması almaya çalışıyorum.406 hatası json

Raylar denetleyicimde json ile yanıt verdiğimde, her seferinde 406 hatası alıyorum ve nedenini bilmiyorum. İşte benim denetleyicim: Ne olursa olsun, bana 406 verir. Bunun batman ile ilgili olduğunu sanmıyorum, ama kendini raylar. Ama iyi ölçmek için, işte batman kod:

index: (params) -> 
    TopNavTemplate.Sample.load (err) -> throw err if err 
    @set 'samples', TopNavTemplate.Sample.get('all') 

Ve sonra benim index.html.erb dosyası basitçe 'indeks', gerçekten henüz batman ile hiçbir şey yapmıyor diyor.

406 JSON ile ilgili çok fazla soru var, henüz onları henüz durumuma uygulayamadım. JSON ile rayları yanıtlamak için yanlış yaptığım bir şey var mı?

SamplesController.rb

class SamplesController < ApplicationController 
    respond_to :json 

    def show 
    respond_with Sample.find(params[:id]) 
    end 

    def index 
    respond_with Sample.all 
    end 
end 

ben amaçlandığı gibi /samples.json ve samples/1.json, işe yaradı ziyaret:

cevap

24

Tamam, durumunuzu kontrol etmek çok basit bir uygulama yaptı. Ancak, /samples ve /samples/1 (no .json uzantısı) için gittiğimde, 406 hatası aldım.

resources :samples, defaults: {format: :json} 

Aksi halde, Raylar uygulama bir HTML yanıtı ile isteğine yanıt dener şu şekildedir: .json uzantısı olmadan URL iş var için

, kendi config/routes.rb dosyasını değiştirmek gerekir .

+0

+1 çok teşekkürler! –

+2

Bugünlerde şunu görüyorum ki, bugünlerde Batman'in Rails deposu bağdaştırıcısı artık varsayılan olarak tüm isteklere .json ekliyor. – Kombo

İlgili konular