我想做这样的事情:
user.items << Item.new(params[:item] , :computer => Computer.new(params[:computer] , :laptop => Laptop.new(params[:laptop])))
但这会产生错误“错误的参数数量(2对1)”!
答案 0 :(得分:2)
您正在做的事实上被解释为
Item.new(params[:item] , {
:computer => Computer.new(params[:computer], {
:laptop => Laptop.new(params[:laptop])
})
})
#new
需要一个哈希属性,并且你给它两个哈希值。一种解决方案是使用Hash#merge
合并哈希值。