【问题标题】:Rails create model along with associated data from JSONRails 创建模型以及来自 JSON 的关联数据
【发布时间】:2015-04-12 20:35:05
【问题描述】:

我的 Rails API 中有一个 RESTful 创建操作,用于我的模型 Case。很简单:

@case = Case.new(case_params)

if @case.save
    render json: @case, status: :created, location: @case
else
    render json: @case.errors, status: :unprocessable_entity
end

我正在使用模型字段和关联将数据发布到端点 (JSON)。在前端填写表格时,会包含地址。 Case 模型有许多 Address 模型。

所以我将 JSON 中的地址作为对象数组包含在内,例如:

{
  "field_on_case": "value",
  "addresses": [{
    "street_address": "1234 wonderland"
  }, {
    "street_address": "4321 wonderland"
  }]
}

执行此操作并发布到 API 时,在 Web 服务器中我看到:Unpermitted parameters: addresses

我在Case 控制器的case_params 方法中有这个sn-p:

params.require(:case).permit(:addresses, addresses_attributes: [:id, :type, :street_address, :city, :zip, :state])

我的Case 模型中也有这条线:

accepts_nested_attributes_for :addresses

【问题讨论】:

标签: ruby-on-rails json activerecord


【解决方案1】:

如果属性是哈希,则需要指定:

addresses: [ ]

在您的参数中。 我认为您可以使用:

params.require(:case).permit(addresses: [:type, :street_adress, :city, :zip, :state])

然后您也可以从模型中删除nested_attribute。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多