我希望在我的User表上添加一个jsonb列(称为per_deal_numbers)并准备迁移
class AddInfoToUsers < ActiveRecord::Migration
def change
add_column :users, :per_deal_numbers, :jsonb, default: '{??????}'
end
end
例如对于已经完成大量交易的用户来说,这将是这样的:
user=(
id:1,
name:Eric,
age: 24,
per_deal_numbers: {
deal1 : {"nb_of_shots"=>20, "nb_of_lost_guesses"=> 6 },
deal10: {"nb_of_shots"=>13, "nb_of_lost_guessess"=> 4 },
deal5: {"nb_of_shots"=>54, "nb_of_lost_guesses"=> 9 }
}
我想要的是在我的迁移中告诉:每当你为用户刚刚参与的交易申请新条目时,将nb_of_shots和nb_of_lost_guesses值等于0
我应该在迁移中或以后在我的rails app逻辑方法中提供upsert吗?
答案 0 :(得分:0)
我知道这是一个较老的问题,但也许答案可以帮助更多人。 对象键必须用引号写。
以下是一个例子:
class CreateSettings < ActiveRecord::Migration
def change
create_table :settings do |t|
t.jsonb :price_calculator, null: false, default: '{"formula": {"main_factor": 8, "city_factor": 7} }'
t.timestamps null: false
end
end
end