1
使用ActiveRecord和Postgresql,创建!在新的创纪录的业绩不如预期,布尔真另存为“T”ActiveRecord创建!使用Postgresql将布尔值保存为't',但在更新/保存后更新为1/0
SiteSetting.create!(:name => :enable_github, :value => true, :data_type => 5)
=> :value => 't'
但是,当我取的记录,更改并保存它,值然后更改为0虚假或1 true,如果我将它设置再次为真。
setting = SiteSetting.where(:name => :enable_github).first
setting.value = false
setting.save
=> :value => 0
然后
setting.value = true
setting.save
=> :value => 1
为什么是驱动更新值作为一个整数,而不是“T”或“f”,因为它应该PostgreSQL的?
啊,当然!它实际上指定为文本,因为它根据所存储的设置保存多种数据类型。我被抛出的事实是,它在创建时如预期的那样解释布尔值,但在更新/保存时会不同。不用担心,我们已经明确地设置了't'和'f'值。我只是好奇古怪的行为。 – nverba 2013-03-04 13:40:51