簡體   English   中英

發送POST請求軌道

[英]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 [router]: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服務= 9ms狀態= 400字節= 264

您來自郵遞員應用程序的POST結構應如下所示:

beer[name]       testing
beer[percent]    1

應該是這樣的

render json: { data: @beer, location: @beer, status: :created }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM