2016-02-18 2 views
0

это мой контроллер# <ActionController :: ParameterMissing: пары отсутствуют или значение пустое: книга>

class BooksController < ApplicationController 
def create 
    @book = Book.new(book_params) 
    if @book.save 
    render json: @book, status: 201 
    else 
    render json: { error: "check attributes again", status: 400 }, status: 400 
    end 
    end 
private 

def book_params 
    params.require(:book).permit(:author, :categories, :publisher, :title) 
end 
end 

я передаю коляски как этого

{ "book":{ 
     "author": "some one", 
     "categories": "some thing", 
     "publisher": "some publisher", 
     "title": "some thing my own" 
     } 
} 

я получаю выше ошибка, что в этом плохого. Есть идеи? Я использую базу данных sqlite3 и сервер webric.

+0

Вы точно получаете такой формат параметров? Проверьте их в журналах webric после исключения. –

+1

попробуйте использовать это 'params.fetch (: book, {}). Allow (: author,: categories,: publisher,: title)' – Sravan

+0

не могли бы вы объяснить, где я могу найти журналы webric ?? Я новичок в этом. @BorisPilgun –

ответ

0

Проверьте файл журнала.

«ваш каталог рельсы» /logs/development.log

И еще один момент, вы должны написать отлаживать «ставит», как показано ниже, потому что дисплей результаты «ставит» над лог-файл.

def create 
puts 'params => ' + params 
@book = Book.new(book_params) 
0

@Nani, вы должны найти в журналах что-то похожее на это:

Started POST "/books" for 127.0.0.1 at 2016-02-18 18:58:17 +0200 
Processing by BooksController#create as JS 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"....", "book"=>{....}} 

И здесь вам нужно проверить, если вы ожидаете правильных параметров в контроллере.

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

  • Нет связанных вопросов^_^