Mar*_*rom 5 activerecord caching ruby-on-rails
在不触发任何数据库操作的情况下创建新Ruby/Rails对象的最佳方法是什么?
例如,如果我有一个Task类
class Task < ActiveRecord::Base
has_many :tags
has_one :location
end
Run Code Online (Sandbox Code Playgroud)
我想从缓存的数据中创建一个看起来像这样的数据
task_json = {
id: 1,
title: 'My Task',
tags: [
{ title: 'Tag1' },
{ title: 'Tag2'}
]
location: { lat: 46.0, lon: -120.1 }
}
Run Code Online (Sandbox Code Playgroud)
我想重新构建对象,但不会触发任何数据库交互.
@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 = ...
Run Code Online (Sandbox Code Playgroud)
理想情况下,一旦构建对象,就不会以任何方式进行保存或数据库交互.
您可以尝试以这种方式使用JSON.parseJSON字符串task_json:
task = Task.new(JSON.parse(task_json))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7126 次 |
| 最近记录: |