Рубин на рельсах Регистрация пользователя с использованием rest API call и Devise - PullRequest
4 голосов
/ 29 декабря 2011

Может кто-нибудь подсказать, как зарегистрировать пользователя с мобильного устройства (rest API) в ruby ​​on rails.Я использую Devise с Rails 3.0.

он дает мне следующую ошибку

NameError в Devise :: CustomRegistrationsController # create

Ответы [ 2 ]

10 голосов
/ 02 января 2012

Я переопределил функциональность контроллера регистрации devise следующим образом.

def create
  respond_to do |format|  
    format.html { 
      super 
    }
    format.json {
      build_resource
      if resource.save
         render :status => 200, :json => resource
      else
        render :json => resource.errors, :status => :unprocessable_entity
      end
    }
  end
 end

это решило проблему, и я добавил

    skip_before_filter :verify_authenticity_token, :only => :create

, чтобы избежать проверки подлинности.

1 голос
/ 29 декабря 2011

Разве не было бы проще создавать представления для мобильных устройств, чем создавать приложения для Android / iOS?Если вам нужен API, перейдите с запросами POST по адресу / users / sign_up (и аналогичным), например, перейдите по адресу localhost: 3000 / users / sign_up и измените параметр действия формы на action="/users.json", затем нажмите «Отправить», и вы получите APIОтвет для меня (при настройке ванили):

{"email":["has already been taken"],"password":["doesn't match confirmation","is too short (minimum is 6 characters)"]}

Таким образом, вы можете отлаживать API (который следует стандартным соглашениям) с вашим браузером.Обратите внимание, что только изменения параметра :format на маршрутах рельсов (вы можете выбрать .json или .xml для ответа API)

Информация POST, отправленная моим браузером:

"utf8=✓&authenticity_token=n5vXMnlzrXefnKQEV4SmVM8cFdHDCUxMYWEBMHp9fDw%3D&user[email]=asd%40fasd.org&user[password]=321&user[password_confirmation]=1233&commit=Sign+up"

...