2016-08-12 48 views
0

我想UPSERT該行:ROR的Postgres UPSERT哈希

schema.db

t.text "address_field" 

address.rb

serialize :address_field, Hash 

遷移文件

enable_extension 'hstore' unless extension_enabled?('hstore') 

values = [] 
Address.find_each do |address| 
    new_address_field = {first_line => "Street", second_line => "City" } 
    values << [{id: address.id}, {address_field: new_address_field}] 
end 

Upsert.batch(Address.connection, Address.table_name) do |upsert| 
    values.each do |p| 
    upsert.row(p[0], p[1]) 
    end 
end 

錯誤我收到的是:

nameError: uninitialized constant PgHstore 

回答