2015-04-06 3 views
1

Я новичок в Ruby/Rails, и я пытаюсь создать простой API, в котором будет храниться модель пива (имя и доля алкоголя). Я реализовал API с rails gem rails-api, но у меня проблема с отправкой запроса POST. Я получаю 400 ERROR из-за плохого синтаксиса (используя postman для отправки запросов).Отправка запросов 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 [маршрутизатор]: при = Информация = метод 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

+0

Извините за поздний ответ, я использую POSTMAN, но я не могу снять скриншот из-за низкой репутации, так вот скриншот: http://postimg.org/image/tzvdue4rd/ – itodor

+0

Либо ответ запроса, либо ваш файл журнала должны сообщать, почему запрос был отказался –

ответ

1

Ваш POST от почтальона приложение должно быть структурировано что-то вроде этого:

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

stil 400 плохой запрос: //, любая другая идея? – itodor

+0

Попробуйте без котировок – bsvin33t

+0

У меня есть 201 здесь – bsvin33t

0

это должно быть что-то вроде этого ..

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

все еще не работает:/ – itodor

Смежные вопросы