我在Rails 3.1模型中有一些布尔属性,而我刚刚通过迁移添加的两个新属性在Heroku(Cedar)上无法正常工作。他们在本地正常工作,我也在使用PostgreSQL(版本9)。
迁移:
class AddNotificationSettingsToCollections < ActiveRecord::Migration
def change
add_column :collections, :email_comments, :boolean , :default => true
add_column :collections, :email_selections, :boolean , :default => true
end
end
查看(HAML)
%li
%label{:for => 'collection_email_comments'}
= f.check_box :email_comments
Email me when comments are made
%li
%label{:for => 'collection_email_selections'}
= f.check_box :email_selections
Email me when a selection is made
问题是,复选框始终显示为未选中,但是当我检查控制台时,模型ALWAYS将属性设置为true。当我拖尾Heroku日志文件时,我可以看到为这些字段设置了正确的参数(1)。
我错过了什么吗?我在这种形式的其他布尔字段工作正常。这可能与默认值有关吗?
答案 0 :(得分:1)
我也有这个问题。我最终得到了一个愚蠢的解决方法。我知道这不是一个好的解决方案,但这是我的:
= f.check_box :email_comments, {:checked => (@collection.new_record? ? true : @collection.active)}
这很难看,但它在Heroku上以相同的设置完成了我的工作。希望有一个更优雅的解决方案......