#<actioncontroller :: parametermissing:param =“”is =“”missing =“”或=“”=“”value =“”is =“”empty:=“”book =“”>

时间:2016-02-18 12:52:10

标签: ruby-on-rails ruby actioncontroller

这是我的控制器

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服务器。

2 个答案:

答案 0 :(得分:0)

检查以下日志文​​件。

“你的rails目录”/logs/development.log

还有一点,你应该像下面那样写'puts'调试,因为'puts'结果显示在日志文件之上。

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

答案 1 :(得分: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"=>{....}}

在这里,您需要检查控制器中是否需要正确的参数。