Ash*_*ury 5 ruby hash ruby-on-rails
我有一个car_details包含 2000 个条目的列,每个条目都是一个信息散列,如下所示:
{"capacity"=>"0",
"wheels"=>"6",
"weight"=>"3000",
"engine_type"=>"Diesel",
"horsepower"=>"350",
"fuel_capacity"=>"35",
"fuel_consumption"=>"30"}
Run Code Online (Sandbox Code Playgroud)
有些车的细节更多,有些车的细节更少。我想将每辆拥有该钥匙的汽车的"fuel_consumption"钥匙重命名为"mpg"。
据我所知,没有简单的方法可以使用原始 SQL 批量更新数据表中的序列化列。我能想到的最好的方法是做类似的事情:
Car.find_each do |car|
mpg = car.car_details.delete("fuel_consumption")
car.car_details["mpg"] = mpg if mpg
car.save
end
Run Code Online (Sandbox Code Playgroud)
假设您正在使用 Active Record 并且您的模型称为“Car”。
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |