发送 POST 请求 rails
Sending POST request rails
我是 Ruby/Rails 的新手,我正在尝试创建简单的 API 来保存啤酒模型(名称和酒精百分比)。我用 rails gem rails-api 实现了 API 但我在发送 POST 请求时遇到问题。由于语法错误(使用邮递员发送请求),我收到 400 错误。
我不知道我做错了什么。这是我的啤酒控制器:
class BeersController < ApplicationController
before_action :set_beer, only: [:show, :update, :destroy]
# GET /beers
# GET /beers.json
def index
@beers = Beer.all
render json: @beers
end
# GET /beers/1
# GET /beers/1.json
def show
render json: @beer
end
# POST /beers
# POST /beers.json
def create
@beer = Beer.new(beer_params)
if @beer.save
render json: @beer, status: :created, location: @beer
else
render json: @beer.errors, status: :unprocessable_entity
end
end
# PATCH/PUT /beers/1
# PATCH/PUT /beers/1.json
def update
@beer = Beer.find(params[:id])
if @beer.update(beer_params)
head :no_content
else
render json: @beer.errors, status: :unprocessable_entity
end
end
# DELETE /beers/1
# DELETE /beers/1.json
def destroy
@beer.destroy
head :no_content
end
private
def set_beer
@beer = Beer.find(params[:id])
end
def beer_params
params.require(:beer).permit(:name, :percent)
end
end
希望大家能帮我解决这个问题。提前致谢!
当我在这个请求之后打印日志时,我从 heroku 日志中得到这个:
2015-04-06T11:51:40.715123+00:00 heroku[路由器]: at=info method=POST path="/beer s" host=drinkapptest.herokuapp.com request_id=e4557a13-1391-4e30-ab8a-069e714b93 d0 fwd="89.164.165.138" dyno=web.1 connect=0ms service=9ms status=400 bytes=264
应该是这样的..
render json: { data: @beer, location: @beer, status: :created }
您的 POST
来自 postman 应用的结构应如下所示:
beer[name] testing
beer[percent] 1
我是 Ruby/Rails 的新手,我正在尝试创建简单的 API 来保存啤酒模型(名称和酒精百分比)。我用 rails gem rails-api 实现了 API 但我在发送 POST 请求时遇到问题。由于语法错误(使用邮递员发送请求),我收到 400 错误。
我不知道我做错了什么。这是我的啤酒控制器:
class BeersController < ApplicationController
before_action :set_beer, only: [:show, :update, :destroy]
# GET /beers
# GET /beers.json
def index
@beers = Beer.all
render json: @beers
end
# GET /beers/1
# GET /beers/1.json
def show
render json: @beer
end
# POST /beers
# POST /beers.json
def create
@beer = Beer.new(beer_params)
if @beer.save
render json: @beer, status: :created, location: @beer
else
render json: @beer.errors, status: :unprocessable_entity
end
end
# PATCH/PUT /beers/1
# PATCH/PUT /beers/1.json
def update
@beer = Beer.find(params[:id])
if @beer.update(beer_params)
head :no_content
else
render json: @beer.errors, status: :unprocessable_entity
end
end
# DELETE /beers/1
# DELETE /beers/1.json
def destroy
@beer.destroy
head :no_content
end
private
def set_beer
@beer = Beer.find(params[:id])
end
def beer_params
params.require(:beer).permit(:name, :percent)
end
end
希望大家能帮我解决这个问题。提前致谢!
当我在这个请求之后打印日志时,我从 heroku 日志中得到这个:
2015-04-06T11:51:40.715123+00:00 heroku[路由器]: at=info method=POST path="/beer s" host=drinkapptest.herokuapp.com request_id=e4557a13-1391-4e30-ab8a-069e714b93 d0 fwd="89.164.165.138" dyno=web.1 connect=0ms service=9ms status=400 bytes=264
应该是这样的..
render json: { data: @beer, location: @beer, status: :created }
您的 POST
来自 postman 应用的结构应如下所示:
beer[name] testing
beer[percent] 1