Ruby on rails 通过迁移或psql设置默认的hstore列键值对
我的Ruby on rails 通过迁移或psql设置默认的hstore列键值对,ruby-on-rails,postgresql,migration,psql,hstore,Ruby On Rails,Postgresql,Migration,Psql,Hstore,我的users表中有一个hstore列,似乎无法通过迁移或psql设置默认键值对 我提到过这个问题,但没有成功 至于本文提到的迁移解决方案 但未能通过nil问题 如何创建将键、值对默认值添加到表中的hstore列的迁移?例如值1='1',值2='2' 另外,我怎样才能通过psql做到这一点呢?显然很少有人遇到过这个问题,我经过大量的尝试和错误,找到了psql的解决方案,而且非常简单 UPDATE users SET settings = '"value1"=>"1", "value2"=&
users
表中有一个hstore
列,似乎无法通过迁移或psql设置默认键值对
我提到过这个问题,但没有成功
至于本文提到的迁移解决方案
但未能通过nil
问题
如何创建将键、值对默认值添加到表中的hstore
列的迁移?例如<代码>值1='1',值2='2'
另外,我怎样才能通过
psql
做到这一点呢?显然很少有人遇到过这个问题,我经过大量的尝试和错误,找到了psql
的解决方案,而且非常简单
UPDATE users SET settings = '"value1"=>"1", "value2"=>"2"';
但是仍然对迁移解决方案感兴趣。在
rails4
中,您只需将ruby哈希设置为hstore的默认值
class AddStatisticsToOffers < ActiveRecord::Migration
def change
add_column :offers, :statistics, :hstore, default: {total_visitors: 0}, null: false
end
end
class Offer < ActiveRecord::Base
hstore_accessor :statistics,
total_visitors: :integer
end
class OffersController < ApplicationController
def show
respond_to do |format|
format.html { @offer.total_visitors += 1; @offer.save }
end
end
end
class AddStatisticsToOffers
这不会添加设置列。它只更新所有行中现有列的值settings
。您的答案似乎与您的问题不匹配。您是否尝试过使用execute
?