Ruby on rails 如何从rails中的前一个对象预填充?

Ruby on rails 如何从rails中的前一个对象预填充?,ruby-on-rails,ruby,ruby-on-rails-3,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) 但我不认为这是我需要预先填充的格式…任何想法试试这个: @previ

我有这行代码

Account.build_address
这是可行的,但我需要用以前的地址预先填充,所以如果我有参数,我可以这样做

Account.build_address(params[:address])
但是我没有参数,我有一个以前的地址对象,所以为了举例,我可以说

@previous_address = Address.first
Account.build_address(@previous_address)
但我不认为这是我需要预先填充的格式…任何想法

试试这个:

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

试试以下方法:

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

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

您不需要生成,只需克隆现有对象即可:

@previous_address.clone

这将复制
@previous_address
模型的所有列,除了不需要构建的
id
字段,您只需克隆现有对象即可:

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