param缺失或值为空:引号

时间:2014-10-29 15:06:17

标签: ruby-on-rails ajax post parameters params

我有来自以下javascript文件的POST请求:

    this.submitQuoteButton = $("<button />")
        .text("Download PDF")
        .addClass("submitQuoteButton button-success pure-button")   
        .click(function() {

            $.ajax({

                type: "POST",
                url: "../quotes/create",
                data: {
                    name : "John ",
                    email: "john@john.com",
                    json: "data",
                    uid: "uid",
                 },
                 dataType:'text',
                 success: function(data,status,xhr){
                    console.log(status);
                   alert("SUCCESS!");
                 },
                 error: function(xhr,status,error){
                   console.log(status,error);
                   alert("ERROR!");
                 }

            });

        })

这个POST调用我的quotes_controller创建方法,我有这个

  def create
    @quote = Quote.new(quote_params)

    if @quote.save
      redirect_to root_url
    else
      redirect_to blog_path
    end
  end

  private

  def quote_params
    params.require(:quotes).permit(:uid, :name, :email, :json)
  end

目的是获取POST请求中传递的数据,并使用create方法将其保存到我的数据库中。我这样做了吗?我得到了:

param is missing or the value is empty for: quotes

这是否意味着我的数据库设置或创建方法存在问题?

1 个答案:

答案 0 :(得分:6)

quote_params需要您的参数中的quotes键。所以你的ajax调用数据应如下所示:

data: {
  quotes: {
    name : "John ",
    email: "john@john.com",
    json: "data",
    uid: "uid",
  }
}