如何阅读HTTP发布请求?

时间:2015-07-20 04:46:02

标签: ruby-on-rails ruby ruby-on-rails-4

我的问题很熟悉: How should I format a JSON POST request to my rails app?

我是铁轨上的红宝石新秀...只是为期一个月的学习。 我用一些像CRUD这样的简单功能创建了一个Rails。 目前,我想为智能手机制作一些简单的API。

使用 POSTMAN 进行测试 GET没关系。 但 POST 始终会收到状态422无法处理的实体

我的代码中有什么问题...或者我忘记了什么? 非常感谢...

以下是我的代码。

控制器:

  def index
    @users = User.all
    render :json => @users
  end

  # GET /beacons/1
  # GET /beacons/1.json
  def show
    @user = User.find(params[:id])
    render :json => @user
  end

  def create

    @user = User.new(user_params)
    @user.save

    respond_to do |format|
    format.json { render :json => @user }
    end
  end

  private

    def user_params
      params.require(:user).permit(:email, :password, :name)
    end

路线:

  namespace :api do
    namespace :v1 do
      resources :users, :defaults => { :format => :json } 
    end
  end

使用rake路线:

  api_v1_users GET    /api/v1/users(.:format)            api/v1/users#index {:format=>:json}
               POST   /api/v1/users(.:format)            api/v1/users#create {:format=>:json}

我的帖子:

  

{"用户":{"电子邮件":" 2","密码":2,"名称&#34 ;:" 2" }}

URL:

http://localhost:3000/api/v1/users

1 个答案:

答案 0 :(得分:1)

这可能是CSRF令牌的问题,在application_controller.rb中,请尝试替换

protect_from_forgery with: :exception

protect_from_forgery with: :null_session

如果可能,请使用rails s

的错误日志发布您的问题