Rails 4在发布时遗传资源抛出约束感



我有一个非常简单的模型,称为姓名和描述,其中名称是不可删除的。

当我将以下内容发布到/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

相关内容

  • 没有找到相关文章

最新更新