2014-10-29 52 views
1

我从下面的JavaScript文件的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 

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

回答

5

quote_params要求您的参数中的quotes键。所以你的阿贾克斯呼叫数据应该是这样的:

data: { 
    quotes: { 
    name : "John ", 
    email: "[email protected]", 
    json: "data", 
    uid: "uid", 
    } 
} 
+0

你正在解释它一点,所以我会删除我的答案。 :) – BroiSatse 2014-10-29 15:13:47

+0

感谢,似乎解决了,但即时通讯错误'未知的属性:uid'这将是一个数据库问题? – MikeHolford 2014-10-29 15:14:53

+0

@MikeHolford是的,它似乎是。确保你的quotes'表中有'uid'列。 – 2014-10-29 15:15:34

相关问题