1

PostgresqlでActiveRecordを使用して、作成します。ブール値trueが't'として保存された、期待どおりの新しいレコードが生成されます

SiteSetting.create!(:name => :enable_github, :value => true, :data_type => 5)

=> :value => 't'

しかし、レコードをフェッチして変更して保存すると、値を0に変更するとfalseになり、再度trueに設定すると1に変更されます。

setting = SiteSetting.where(:name => :enable_github).first
setting.value = false
setting.save

=> :value => 0

その後

setting.value = true
setting.save

=> :value => 1

なぜドライバーはpostgresqlの場合のように「t」や「f」ではなく整数として値を更新するのですか?

4

1 に答える 1

1

おそらく、移行の場合と同じようにvalue指定しました。integerに変更する必要がありますboolean

于 2013-03-04T04:58:19.463 に答える