Сенча Touch Rails 3.1 - PullRequest
       3

Сенча Touch Rails 3.1

1 голос
/ 29 ноября 2011

Я пытаюсь загрузить ресурс с Sencha Touch на рельсы, но я получаю следующую ошибку:

Started OPTIONS "/menu_items.json?_dc=1322512349038&limit=25&sort=%5B%7B%22property%22%3A%22name%22%2C%22direction%22%3A%22ASC%22%7D%5D" for 127.0.0.1 at 2011-11-28 18:32:29 -0200

ActionController::RoutingError (No route matches [OPTIONS] "/menu_items.json"):

Код моего магазина:

new Ext.data.Store({
                model: 'MenuItem',
                sorters: 'name',
                getGroupString: function(r){
                    return r.get('name')[0] || "";
                },
                proxy: {
                    type: 'rest',
                    url: 'http://localhost:3000/menu_items',
                    format: 'json',
                    reader: {
                        type: 'json',
                        root: 'menu_item'
                    }
                },
                listeners: {
                    load: { fn: this.initializeData, scope: this }
                }
            })

Ответы [ 2 ]

0 голосов
/ 03 мая 2012

Запрос OPTION является частью протокола общего доступа к ресурсам (CORS) .Проверьте этот ценный пост об этом.Вы можете использовать камень rack-cors , чтобы легко его настроить.

0 голосов
/ 29 ноября 2011

Если ваш Rails-код выглядит примерно так, как показано ниже, то, вероятно, проблема в том, что используется метод OPTIONS - действие index реагирует только на GET. Вы знаете, почему здесь используется OPTIONS? Я не могу найти это в документе Sencha Touch для хранилища данных ..

# config/routes.rb
# ...
resources :menu_items

# app/controllers/menu_items_controller.rb
class MenuItemsController < ApplicationController
    def index
      @menu_items = MenuItem.all

      respond_to do |format|
        format.json { render :json => @menu_items }
      end
    end
end

Кстати: из того, что я вижу здесь , возможно, вам следует переместить прокси-код в модель MenuItem.

...