没有嵌套数据保存数据

时间:2014-08-23 07:50:58

标签: json ruby-on-rails-4 nested-attributes

当我尝试保存带有嵌套属性的模型时,我遇到了问题。我要模特儿。一个人有很多衬衫。但是当我尝试通过JSON POST请求保存一个人时。只有人存储,而不是衬衫。有没有人有想法,我在这里缺少什么?

模型

class Person < ActiveRecord::Base
    has_many :shirts
    accepts_nested_attributes_for :shirts

    validates :shirts, presence: true
end

控制器

class PersonsController < ApplicationController
  ...
  def new
     @person = Person.new
  end

  def create
        @person = Person.new(person_params)
  ...
  def person_params
      params.require(:person).permit(:name, :age, :shirts_attributes => [:color, :size])
  end
end

POST localhost:3000 /人

{
    "name" : "Jon",
    "age" : 34,
    "shirts_attributes" : [
      {
        "color" : "black",
        "size" : "XL"
      },
      {
        "color" : "white",
        "size" : "XS"
      }
    ] 
}

1 个答案:

答案 0 :(得分:0)

您应该使用 build 保存shirts以及personnew的{​​{1}}方法应该像这样

PersonsController