gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:36:29 24 4
gpt4 key购买 nike

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

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

然后我通过将相同的 JSON 传递回我的 Controller 来更新这个模型,我收到以下错误:

ActiveRecord::AssociationTypeMismatch (Book (#2245089560) 预期,得到 ActionController::Parameters(#2153445460))

在我的 Controller 中,我使用以下内容进行更新:
@project.update_attributes!(project_params)

private

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

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

我错过了一些明显的东西吗?

更新 - 另一个例子:

Controller :
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 :features

  • 模型序列化器 :
  • has_many :features, root: :features_attributes

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

  • AngularJS :
  • ng-repeat="feature in model.features_attributes track by feature.id
  • 关于json - 在 rails 中嵌套强参数 - AssociationTypeMismatch MYMODEL 预期,得到 ActionController::Parameters(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490255/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com