当我尝试保存带有嵌套属性的模型时,我遇到了问题。我要模特儿。一个人有很多衬衫。但是当我尝试通过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"
}
]
}
答案 0 :(得分:0)
您应该使用 build
保存shirts
以及person
。new
的{{1}}方法应该像这样
PersonsController