如何从另一个不同的模型构建一个ActiveRecord模型?

时间:2012-09-21 18:38:42

标签: ruby-on-rails activerecord constructor

我有两个ActiveRecord模型,CartItem和OrderItem。虽然CartItem是动态的并且包含与各种其他模型的关联,但OrderItem是静态的并且代表过去的状态。两者有一些共同的属性,一些属性不同,一些属于另一个属性。 OrderItems总是只从CartItems创建,所以逻辑上看起来我应该通过将CartItem传递给构造函数来构造OrderItem。我知道我可以构造一个空的OrderItem,然后使用一个单独的方法从CartItem设置它的属性,但这似乎与概念不一致。这样做的适当方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用散列作为参数定义OrderItem初始化方法,如Overloading initialize constructor中所提议的那样,然后在散列中传递所需的CartItems属性以创建OrderItem。