如何为rails迁移定义布尔字段

时间:2011-02-04 08:59:29

标签: ruby-on-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”。

我可以替换:string with:boolean来实现同样的效果吗?它会节省一些数据库空间,比较:string?

2 个答案:

答案 0 :(得分:71)

是的,您可以使用:boolean,是的,它也可以节省数据库空间。

答案 1 :(得分:18)

将类型属性更改为:boolean并再次运行rake db:migrate。你应该可以打电话,例如:

Dream.is_public?  # returning true or false depending whether is set.