Расширение Devise SessionsController для аутентификации с использованием JSON

Я пытаюсь создать rails API для приложения iphone. Devise отлично работает для входа в систему через веб-интерфейс, но мне нужно иметь возможность создавать и уничтожать сеансы с помощью REST API, и я хочу использовать JSON вместо того, чтобы выполнять POST на контроллере сеансов и анализировать HTML и обрабатывать перенаправление.

Я думал, что могу сделать что-то вроде этого:

class Api::V1::SessionsController < Devise::SessionsController  
  def create
    super
  end  
  def destroy
    super
  end  
end

и в config / routes.rb я добавил:

namespace :api do
  namespace :v1 do
    resources :sessions, :only => [:create, :destroy]
  end
end

rake routes показывают, что маршруты настроены правильно:

   api_v1_sessions POST   /api/v1/sessions(.:format)     {:action=>"create", :controller=>"api/v1/sessions"}
    api_v1_session DELETE /api/v1/sessions/:id(.:format) {:action=>"destroy", :controller=>"api/v1/sessions"}

Когда я отправляю POST в / user / sessions все работает нормально. Я получаю HTML и 302.

Теперь, если я отправляю POST в / api / v1 / sessions, я получаю: AbstractController :: ActionNotFound

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json'   -X POST http://localhost:3000/api/v1/sessions   -d "{'user' : { 'login' : 'test', 'password' : 'foobar'}}"
47
задан dylanfm 31 July 2011 в 16:21
поделиться