我有一个非常简单的模型,称为姓名和描述,其中名称是不可删除的。
当我将以下内容发布到/api/deals
时{"name":"oaeu"}
我得到错误
sqlite3 :: dellaintexception:deals.name可能不会为null:插入" deals"(" create_at"," updated_at")value(?,?)
我的模型
enter code here
我的控制器
class DealsController < InheritedResources::Base
protected
def permitted_params
params.require(:deal).permit(:name)
end
end
我的模型
class Deal < ActiveRecord::Base
end
我不知道发生了什么!!!
我的gemfile包括:
宝石'rails','4.0.2'
和
gem'Casenited_resources'
有什么想法?
params
首先,您的strong params
不正确:
def permitted_params
params.permit(deal: [:name])
end
如本博客文章中所述,此GitHub帖子,除非使用上述代码!
保存
如评论中所述,您的保存过程似乎是通过对继承的资源控制器
进行的。看来您使用的是API,所以也许它直接发送到模型;无论哪种方式,您都必须详细说明如何保存入站数据
似乎您需要在控制器中覆盖#Resource_Params方法。
def resource_params
[ params.require(:deal).permit(:name) ]
end
请参阅:https://github.com/josevalim/inherited_resources/issues/236http://blog.josemarluedke.com/posts/inherited-resources-with-rails-4-4-and-strong-parameters