【问题标题】:Rails make devise JSON APIRails 设计 JSON API
【发布时间】:2016-12-06 16:52:02
【问题描述】:

我对如何将设计设置为JSON API 感到困惑。

我看了一下这个script,但遇到了一些麻烦。

首先,我创建了一个 controller/api 文件夹并放入 registrations_controller.rbsessions_controller.rb

然后我修改routes.rb

devise_for :users
namespace "api", :as=>:api do
  devise_for :users
end

registrations_controller.rb

class Api::RegistrationsController < Api::BaseController

  respond_to :json
  def create
    user = User.new(params[:user])
    if user.save
      render :json=> user.as_json(:auth_token=>user.authentication_token, :email=>user.email), :status=>201
      return
    else
      warden.custom_failure!
      render :json=> user.errors, :status=>422
    end
  end
end

但是,当我尝试向http://localhost:3000/api/registrations/create 发送post 请求时,它抛出了错误

No route matches [POST] "/api/registrations"

如何修改routes.rb,以便发送post 请求。

【问题讨论】:

    标签: ruby-on-rails json rest devise


    【解决方案1】:

    因为你已经创建了自定义控制器,你需要为他指定路由器:

    resources :registrations, only: [:create]
    

    如果您不打算使用设计控制器,您可以禁用它们的路由器,但不要删除它们。

    devise_for :users, skip: :all
    

    【讨论】:

    • 我需要一些设计功能。谢谢,我现在可以发送请求了
    • 现在我也在致力于通过 json 与客户端集成。
    • 您是否遵循教程或一些有用的参考?
    • 我使用设计只是为了拥有设计模型并发送邮件(禁用路由器)。对于 angular2 使用 angular2-jwt 库。按照这篇文章adamalbrecht.com/2015/07/20/… 使用json web token。
    • 我尝试使用devise_token_auth,但很痛苦。
    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多