вопрос о Миграции varchar для Ruby on Rails

Я (думают I) являюсь архитектором, кодирование - то, что делает эту забаву задания.

Тогда Вы видите, что Ваши идеи оживают, Вы видите, что Ваш дизайн работает, и Вы видите ошибки в дизайне (слишком поздно так или иначе, но в следующий раз...)

35
задан bgadoci 2 November 2009 в 19:01
поделиться

3 ответа

Вы можете просто использовать тип «текст» вместо «строка».

def self.up
  create_table :notes do |t|
    t.text :note
  end
end

Использование типа «текст» приведет к созданию столбца базы данных типа ТЕКСТ. Varchar обычно ограничен максимальной длиной 255 (в MySQL другие СУБД имеют аналогичные ограничения).

Если вы используете помощники форм Rails, для этого поля будет выведено текстовое поле (поскольку оно типа "текст"). textarea - это элемент формы, который принимает многострочный ввод.

Изменить: если вы уже перенесли create_table, вы можете создать новую миграцию, чтобы изменить тип столбца:

def self.up
  change_column :notes, :note, :text
end
22
ответ дан 27 November 2019 в 06:25
поделиться

Правильный формат -

t.string :note, :limit => 1000

. Убедитесь, что вы используете версию MySQL (или любую другую базу данных), которая поддерживает символы varchars длиной более 256 символов.

если вы хотите использовать большие текстовый блок это будет

t.text :note

См. http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html для получения дополнительной информации

78
ответ дан 27 November 2019 в 06:25
поделиться

Вы можете изменить длину с помощью параметра limit следующим образом ...

def self.up
  change_column :notes, :note, :string, :limit => 1000
end
27
ответ дан 27 November 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: