使用params散列和相关模型创建表条目参数hash

时间:2012-03-18 16:30:54

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord model-associations

我想做这样的事情:

user.items << Item.new(params[:item] , :computer => Computer.new(params[:computer] , :laptop => Laptop.new(params[:laptop])))

但这会产生错误“错误的参数数量(2对1)”!

1 个答案:

答案 0 :(得分:2)

您正在做的事实上被解释为

Item.new(params[:item] , {
  :computer => Computer.new(params[:computer], { 
    :laptop => Laptop.new(params[:laptop])
  })
})

#new需要一个哈希属性,并且你给它两个哈希值。一种解决方案是使用Hash#merge合并哈希值。