Создать пользователя в Devise из JSON

Я работаю над интеграцией моего приложения Rails 3.1, работающего под управлением Devise, для аутентификации пользователя с моим приложением iOS.Я бы хотел, чтобы пользователь мог зарегистрироваться из приложения, а затем я мог бы сохранить эти учетные данные для входа в систему позже.

Используя RestKit, я делаю следующее:

-(IBAction)registerUser:(id)sender {
    NSDictionary *params = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:
                                                                self.email.text,
                                                                self.password.text,
                                                                self.confirmPassword.text,
                                                                nil]
                                                       forKeys:[NSArray arrayWithObjects:
                                                                @"email",
                                                                @"password",
                                                                @"password_confirmation",
                                                                nil]];

    [[RKClient sharedClient] post:@"/users.json" params:params delegate:self];
}

URL /users.json идет по адресу: user_registration POST /users(.:format) {: action => "create",: controller => "devise / registrations"} (согласно маршрутам рейка). Похоже, что пост-вызов принимает разные форматы, поэтому я предполагаю, что он будет принимать JSON. Мой запрос на публикацию сериализуется как JSON и отправляется. Сервер получает его, и это журнал:

Started POST "/users.json" for 129.21.84.10 at 2012-01-12 15:33:57 -0500
  Processing by Devise::RegistrationsController#create as JSON
  Parameters: {"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "email"=>"test1@test.com"}
WARNING: Can't verify CSRF token authenticity
  User Load (0.9ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
   (0.3ms)  BEGIN
   (0.2ms)  COMMIT
   (0.2ms)  BEGIN
   (0.4ms)  ROLLBACK
Completed 422 Unprocessable Entity in 93ms (Views: 3.8ms | ActiveRecord: 10.2ms)

Я получаю ошибку 422, а мой пользователь не создан. Мое приложение для iOS получает следующий ответ: Ответ: {"email": ["не может быть пустым"], "пароль": ["не может быть пустым"]} . Но пароль и адрес электронной почты не пустые, сервер успешно их получил. Итак, что-то не работает, и я не уверен, куда идти. Как мне создать пользователя с помощью JSON?

Спасибо за помощь!

7
задан Ethan Mick 12 January 2012 в 20:38
поделиться