如何从rails中的先前对象预填充?

时间:2012-02-28 23:49:52

标签: ruby-on-rails ruby ruby-on-rails-3

我有这行代码

Account.build_address

并且这有效,但我需要预先填充以前的地址,所以如果我有我可以做的参数

Account.build_address(params[:address])

但是我没有这个参数我有一个以前的地址对象所以为了示例我可以说

@previous_address = Address.first
Account.build_address(@previous_address)

但我不认为这是我需要预先填充的格式......任何想法

2 个答案:

答案 0 :(得分:2)

您不需要构建,只需克隆现有对象:

@previous_address.clone

这将复制@previous_address模型的所有列,id字段除外

答案 1 :(得分:1)

试试这个:

@previous_address = Address.first
Address.build_address(@address.attributes)

@address.attributes返回对象的ActiveRecord属性的哈希值...因此,只要build_address需要哈希值,它就应该生成一个与传入的地址等效的对象。