我有一个属性为id, name, location的模型Foo.

f1 = Foo.new
f1.name = "Bar"
f1.location = "Foo York"
f1.save

我想复制f1,并从该副本中创建Foo模型的另一个实例,但我不想将f1.id延续到f2.id(我不想显式地分配它,我希望db处理它,因为它应该这样做).

除了手动复制每个属性之外,还有其他简单的方法吗?任何内置函数或编写函数都是最佳途径吗?

谢谢

推荐答案

这就是ActiveRecord::Base#clone方法的用途:

@bar = @foo.clone

@bar.save

Ruby-on-rails相关问答推荐

如何在Rails中创建没有字符串的查询

Rails 7 共享刺激控制器功能

ArgumentError 用于 Ruby on Rails 中非常简单的初始化方法,没有参数

为 has_attached_file 等活动记录属性创建类方法

ActiveRecord 包括.指定包含的列

Rails - 如何从 http://example.com 重定向到 https://www.example.com

Ruby - ActiveRecord::ConnectionNotEstablished

如何避免 RSpec 3.0 中 stub_chain 的弃用警告?

在 Epoch 中将 Ruby 时间戳转换为秒数并返回

如何在我的 Gemfile 中找到未使用的Ruby

未捕获的类型错误:未定义不是函数- 初学者 Backbone.js 应用程序

rmagick 和 OS X Lion

如何拯救 OmniAuth::Strategies::OAuth2::CallbackError?

如何为rails中的number_field添加默认值?

设计:在注册期间禁用密码确认

禁用 JS/Ajax 请求时的 ActionController::InvalidAuthenticityToken

如何跳过失败的迁移? (耙分贝:迁移)

rails 获取应用程序根/基本 url

Rails: Sprockets::Rails::Helper::AssetNotPrecompiled 在开发中

如何为 Rails 控制器添加延迟以进行测试?