liente @BackBone com um servidor Rails remoto

Fundo

Uso "rails g scaffold hotel name stars: integer" para iniciar rapidamente (e inserir alguns registros no banco de dados) e escrever um cliente Backbone fora do aplicativo rail

Eu abro o cliente Backbone localmente com o arquivo Safari: ///Users/lg/Workspace/www/index.html para testar o cliente porque minha idéia é colocar o servidor Rails em um host (por exemplo, Heroku) e inserir o Backbone cliente em um aplicativo PhoneGap.

Meu cliente de backbone é apenas algumas linhas:

Hotel = Backbone.Model.extend({
  initialize: function(){
    console.log("initialize Hotel")
  }

});

Hotels = Backbone.Collection.extend({
  model: Hotel,
  url: 'http://0.0.0.0:3000/hotels'
});

Mas quando busco hotéis com backbone, os trilhos respondem com o format.html e não o format.json que o Backbone pode analisa

hotels_controller.rb

# GET /hotels
# GET /hotels.json
def index
  @hotels = Hotel.all

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @hotels }
  end
end

Safari inspector console:

hotels = new Hotels()
Object
hotels.fetch()
Object
hotels.length
0

Request URL:http://0.0.0.0:3000/hotels
Request method:GET
Status code:200 OK

Request Headers
Accept:application/json, text/javascript, */*; q=0.01
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10

Response Headers
Cache-Control:max-age=0, private, must-revalidate
Connection:Keep-Alive
Content-Length:2233
Content-Type:text/html; charset=utf-8
Date:Sat, 11 Feb 2012 14:31:52 GMT
Etag:"606da2b7c21ca96c9d71aabccdd439e9"
Server:WEBrick/1.3.1 (Ruby/1.9.2/2011-07-09)

EDITAR Atualizado com o URL definido como URL: "http://0.0.0.0:3000/hotels.jso

pode corrigir, mas não pode fazer os outros CRUD (exemplo PUT)

hotels = new Hotels()
Object

hotels.fetch()
Object

hotels.length
5

hotel = hotels.get(2)
Object

hotel.set({name: "name 2"})
Object

hotel.save()
Object

PUT http://0.0.0.0:3000/hotels.json/2 404 (Not Found)

m vez disso, se eu definir apenas / hotéis, ele funciona (mas o cliente de backbone deve residir no servido

EDIT 2:

uploaded o código no github

https: //github.com/RevH/backbonefail

EDIT 3:

Outros detalhes é que, se você inserir o diretório backboneclient no diretório público do Rails e alterar 0.0.0.0:3000/hotels.json para / hotels, ele funciona de maneira fantástica! Mas se eu separar o cliente do servidor e abri-lo com o Safari, será necessário .json no final do URL. isto é muito estranho

i abra um problema de trilhos no github emhttps: //github.com/rails/rails/issues/500

questionAnswers(6)

yourAnswerToTheQuestion