在不触发任何数据库操作的情况下创建新的 Ruby/Rails 对象的最佳方法是什么?
例如,如果我有一个任务类
class Task < ActiveRecord::Base
has_many :tags
has_one :location
end
我想从看起来像这样的缓存数据创建一个
task_json = {
id: 1,
title: 'My Task',
tags: [
{ title: 'Tag1' },
{ title: 'Tag2'}
]
location: { lat: 46.0, lon: -120.1 }
}
我想重构对象,但不触发任何数据库交互。
@task = Task.new
@task.id = task_json['id']
@task.title = task_json['title']
@task.location = Location.new(:lat => task_json['location']['lat'], :lon => task_json['location']['lon'])
@task.tags = ...
理想情况下,一旦构建了对象,就不会以任何方式进行保存或数据库交互。