我有一个 Rails 3.2 应用程序,我有一个模型,我们称之为 Car。
用户输入一系列信息,应用程序会根据该信息返回推荐汽车的列表。现在,每辆车都有一组用户可能想要或不想要的临时属性,例如建议的内饰、建议的颜色等。这些“建议的”属性是根据用户输入的信息动态计算的。因此,该应用程序不仅会猜测用户可能想要什么汽车,它还会猜测用户可能想要的其他选项,并将该信息暂时存储在 Car 记录中。
这是 Car 模型相关部分的伪代码表示:
def self.suggested_cars
@cars = basic_cars(user_height, user_weight)
add_upholstery_suggestions(@cars, user_wealth)
add_color_suggestions(@cars, user_gender)
end
问题是建议汽车和选项的算法可以返回不明确的实际汽车记录。例如,对建议汽车的一项请求可以返回汽车 A 和汽车 A,同时配备真皮座椅。但是我有一个问题,因为当同时从活动记录中请求两个相同的实体时,两个实例都引用同一个对象,即它们不能有不同的瞬态数据。
我怀疑发生这种情况时我可能需要使用 .dup 方法来复制对象,但我觉得有一个更优雅的解决方案。我愿意接受任何建议。有没有一种通用的方法来处理这种情况?