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

lka*_*htz 42 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
Run Code Online (Sandbox Code Playgroud)

然后我可以在控制器中为mymodel.is_public分配"true"或"false".

我可以替换:string with:boolean来实现相同的效果吗?与以下字符串相比,它会节省一些数据库空间吗?

sev*_*cat 75

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


Kle*_* S. 19

将type属性更改为:booleanrake db:migrate再次运行.你应该可以打电话,例如:

Dream.is_public?  # returning true or false depending whether is set.
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.我向你学习Dream.is_public?将由rails自动生成.COOOL ~~~ (10认同)