如何为Rails迁移定义布尔字段
我想向表“ my_model”中添加一个布尔值字段(“ is_public”)。 目前,我可以使用:
class AddPublicToDream < ActiveRecord::Migration
def self.up
add_column :my_model, :is_public, :string
end
def self.down
remove_column :my_model, :is_public, :string
end
end
然后,我可以在控制器中为mymodel.is_public分配“ true”或“ false”。
我可以用:boolean替换:string来达到相同的效果吗? 与:string相比,它会节省一些数据库空间吗?
lkahtz asked 2020-08-11T10:13:36Z
2个解决方案
74 votes
是的,您可以为此使用:boolean
,是的,这还将节省数据库空间。
19 votes
将类型属性更改为:boolean
,然后再次运行rake db:migrate
。 您应该可以打电话,例如:
Dream.is_public? # returning true or false depending whether is set.