我想更新我的列属性名称而不更改其值

时间:2019-05-25 07:37:20

标签: ruby-on-rails

1。我希望查询更新我的列属性名称而不更改属性值。

这就是我所拥有的... 我的表名称是CheckIn,而列则是名称渴望:

my attributes:
`"Magic box"=>nil, "Play Store, fruits"=>nil, "Chocos"=>nil, "Sauces"=>nil, "Sugar"=>nil`

我要重命名我的名字:

"Magic box"=>'Boundry wall',
"Play Store, fruits"=>'B Area',
"chocos"=>'raffle',
"Sauces"=>'ketchup',
"Sugar"=>'wheat'

只想更改/更新我的属性名称。

1 个答案:

答案 0 :(得分:0)

尝试一下:

CheckIn.where.not(cravings: nil).each do |r|
  r.cravings['dairy'] = r.cravings.delete('Dairy products')
  .
  .
  .
  r.save!
end

请考虑使用事务在失败时回滚更新。

还要注意,这可能需要很长时间,具体取决于大小或您的桌子。选中each_record以提高性能。