我正在渲染一个模型,它是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序列化器,这对我有用:
型号:
ModelSerializer:
控制器:
AngularJS:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句