2015-04-06 240 views
1

我是Ruby/Rails中的新成員,我正在嘗試創建一個可容納啤酒模型(名稱和酒精百分比)的簡單API。我用rails gem rails-api實現了API,但是我在發送POST請求時遇到了問題。由於語法錯誤(使用郵遞員發送請求),我得到了400錯誤。發送POST請求軌道

我不知道我做錯了。這裏是我的啤酒控制器:

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 [路由器]:在= INFO方法= POST路徑=「/啤酒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

+0

這看起來總體上沒問題。你可以分享你正在發佈的POST請求嗎? – surreymagpie 2015-04-06 09:45:19

+0

對不起,遲到的回答,我使用的郵遞員,但我不能因爲後低信譽的截圖所以這裏的截圖:http://postimg.org/image/tzvdue4rd/ – itodor 2015-04-06 10:53:06

+0

任一方請求響應或日誌文件應該說爲什麼請求是拒絕 – 2015-04-06 11:05:43

回答

1

POST從郵遞員的應用程序的結構應是這樣的:

beer[name]  testing 
beer[percent] 1 
+0

stil 400不好的要求://,任何其他想法? – itodor 2015-04-07 09:08:10

+0

嘗試不帶引號 – bsvin33t 2015-04-07 09:09:39

+0

我得到了201這裏 – bsvin33t 2015-04-07 09:17:23

0

它應該是這樣..

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

仍然不工作:/ – itodor 2015-04-06 11:56:35