【发布时间】:2011-12-09 04:48:12
【问题描述】:
遇到了一个奇怪的问题:
布尔字段未保存在 Heroku 上(本地工作正常)
详情:
Rails 2.3 on Heroku (bamboo-ree-1.8.7).
迁移
def self.up
add_column :users, :send_contact_emails, :boolean, :default => false
end
在 Heroku 上:
>> u = User.last
=> #<User id: 100, ......
>> u.send_contact_emails = true
=> true
>> u.save
=> true
>> x = User.last
=> #<User id: 100, ...
>> x.send_contact_emails
=> nil <---------------------------- Why is this ?
当我在本地(Postgresql 8.4)执行此操作时,它按预期工作。
有什么想法吗?
编辑:
直接在数据库上运行一些测试:
>> ActiveRecord::Base.connection.execute("SELECT send_contact_emails from users where id = 100")[0]
=> {"send_contact_emails"=>nil}
>> ActiveRecord::Base.connection.execute("UPDATE users SET send_contact_emails=FALSE where id=100")
=> #<PGresult:0x7f76d7593580>
>> ActiveRecord::Base.connection.execute("SELECT send_contact_emails from users where id = 100")[0]
=> {"send_contact_emails"=>"f"}
所以问题出在 Rails 而不是 Postgresql...
【问题讨论】:
-
不是很有帮助,但看起来像 stackoverflow.com/questions/7437789/… 的副本
-
遗憾的是,该问题中建议的神奇解决方案(回滚/重新迁移)不起作用。
-
很遗憾听到这个消息 - 这似乎是一个遥远的目标,但我认为无论如何还是值得一提
-
你在 heroku 和 localy 上有相同的 Postgres 吗?
标签: ruby-on-rails postgresql activerecord heroku rails-postgresql