在Rails中嵌套强参数-预期为AssociationTypeMismatch MYMODEL,得到了ActionController :: Parameters()

艾伦·H

我正在渲染一个模型,它是JSON的子书,如下所示:

{"id":2,"complete":false,"private":false, "books" [{ "id":2,"name":"Some Book"},.....

然后,我通过将相同的JSON传递回我的控制器来更新此模型,并且出现以下错误:

ActiveRecord :: AssociationTypeMismatch(预计为Book(#2245089560),已获得ActionController :: Parameters(#2153445460))

在我的控制器中,我正在使用以下内容进行更新:

@project.update_attributes!(project_params)

private

def project_params
    params.permit(:id, { books: [:id] } )
end

无论我将哪些属性列入白名单,permit我似乎都无法保存子模型。

我缺少明显的东西吗?

更新-另一个示例:

控制器:

def create
    @model = Model.new(model_params)
end
def model_params
    params.fetch(:model, {}).permit(:child_model => [:name, :other])
end

要求:

post 'api.address/model', :model => { :child_model => { :name => "some name" } }

模型:

accepts_nested_attributes_for :child_model

错误:

预期的ChildModel,获得了ActionController :: Parameters

尝试这种方法无济于事:http : //www.rubyexperiments.com/using-strong-parameters-with-nested-forms/

用户名

我正在使用Angular.js和Rails&Rails序列化器,这对我有用:

型号

  • has_many:功能
  • accepts_nested_attributes_for:功能

ModelSerializer

  • has_many:features,root::features_attributes

控制器

  • params.permit features_attributes:[:id,:enabled]

AngularJS

  • model.features_attributes中的ng-repeat =“ feature按feature.id跟踪

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档