我有一个模型接受另一个模型的嵌套属性,如下所示:
class House < ActiveRecord::Base
has_one :owner
attr_accessible :owner_attributes
accepts_nested_attributes_for :owner
end
我希望能够:owner_attributes
只调用:owner
,并能够发布如下所示的json:
{
"house": {
"address": "123 Main St",
"owner": {
"name": "Jim",
"age": 9000
}
}
这似乎违反了rails惯例,但我只想弄清楚它是否可能。
答案 0 :(得分:0)
将此添加到您的控制器
private
def house_params
params.require(:house).permit(:house_field_a, :house_field_b, owner_attributes: [:name, :etc])
end
这会将owner
参数转换为owner_attributes
,允许您POST
嵌套owner
对象。
然后在控制器操作中,您可以使用house_params
代替params[:house]