Указание POST в рельсах 3 маршрута и вызов из Flash - PullRequest
1 голос
/ 10 января 2011

Я использую рельсы для моего бэкенда в приложении Flash.Мне нужно отправить кучу параметров на рельсы из флэш-памяти, используя сообщение.У меня есть действие rails в моем users_controller с именем register

мой файл маршрутов выглядит так

  resources :users

  match 'register'  => 'Users#register', :via => :post

скрипт действия выглядит примерно так

var vars:URLVariables = new URLVariables();
vars.first_name = "First";
vars.last_name = "Last";
vars.address = "555 Mysteet Rd.";
vars.email = "me@example.com";
vars.city = "The Hill";
vars.provice = "KY";
vars.postal_code = "55555";

var request : URLRequest = new URLRequest("/register");
request.method = URLRequestMethod.POST;
request.data = vars;

var loader : URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, registerHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.load(request);

ОшибкаПолучение во Flash - это потоковое событие IO_ERROR, которое обычно указывает на то, что вызываемый вами URL не существует.Если я изменяю request.method на GET, то вызов работает, но не все данные отправляются на рельсы, потому что GET не может обработать длину отправляемых данных.

1 Ответ

4 голосов
/ 10 января 2011

Как выглядит ваш контроллер и действие?

Для вызовов типа API, например, из Flash / Flash в Rails, я не использую пользовательские маршруты. Скорее я полагаюсь на действия RESTful. Итак, я звоню:

/ пользователей / создать /

Поскольку вы объявили свой ресурс для: пользователей в ваших маршрутах, у вас должна быть эта маршрутизация (при условии, что у вас есть действие создания RESTful).

Дай мне подробности, и я постараюсь помочь.

[править]

Подробнее от Мэтта через IM:

  • контроллер - это пользователь, а действие - регистрация.
  • POST успешно получен в Rails, но выдает ошибку

    ActionController :: InvalidAuthenticityToken

Для безопасности Rails 3 добавляет скрытое поле формы с токеном, ожидаемым при любом POST-контроллере Rails. Поскольку этот POST происходит из Flash, этот токен явно отсутствует, и мы получаем эту ошибку.

Чтобы устранить проблему, отключите проверку подлинности для контроллера с помощью:

skip_before_filter :verify_authenticity_token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...