Как определить логическое поле для миграции рельсов - PullRequest
40 голосов
/ 04 февраля 2011

Я хочу добавить поле логического значения ("is_public") в таблицу "my_model". В настоящее время я могу использовать это:

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

Затем я могу присвоить "true" или "false" mymodel.is_public в контроллерах.

Могу ли я заменить: string на: boolean для достижения того же эффекта? Сэкономит ли это пространство базы данных по сравнению со строкой?

Ответы [ 2 ]

71 голосов
/ 04 февраля 2011

Да, вы можете использовать :boolean для этого, и да, это также сэкономит место в базе данных.

19 голосов
/ 04 февраля 2011

Измените атрибут типа на :boolean и снова запустите rake db:migrate.Вы должны быть в состоянии позвонить, например:

Dream.is_public?  # returning true or false depending whether is set.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...