我已经创建了一个新的表包括列“注释”。默认为varchar(255)我相信,但我希望有此列是一个文本面积与一个字段,允许更多的数据。我想,我会做出的ActiveRecord ::迁移文件,这个改变,但我很好奇,以格式。我简单地改变为varchar(255)为varchar(1000),例如? (如果是的话是什么格式?

def self.up
    create_table :notes do |t|
      t.string :note :varchar(1000)
    end

是正确的格式?此外,我如何才能输入字段是多行。很抱歉,如果这是简单的东西,但我是新来的编程和回报率。谢谢。

有帮助吗?

解决方案

可以简单地使用,而不是“字符串”的“文本”类型。

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

使用“文本”类型将导致类型TEXT的数据库列。 VARCHAR通常限于的最大长度255(在MySQL,其他RDBMS具有相似的限制)。

如果您使用Rails的形式帮手,一个 textarea的将是本领域的输出(因为它是类型‘文本’)。 textarea的是接受多行输入的形式的元素。

编辑:如果您已经迁移的CREATE_TABLE,您可以创建一个新的迁移更改列类型:

def self.up
  change_column :notes, :note, :text
end

其他提示

正确的格式将是

t.string :note, :limit => 1000

请确保您使用的MySQL版本(或任何数据库),它支持VARCHAR处理超过256个字符的。

如果你想使用一个大的文本块,这将是

t.text :note

请参阅 http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters /TableDefinition.html 了解详情

可以与限制选项,以便改变它的长度...

def self.up
  change_column :notes, :note, :string, :limit => 1000
end

由于我有很多数据的已存储余使用

self.up
  change_column :notes, :note, :text, :limit => nil
end

如果我停止的:极限=>零选项则列型会从varchar到文本改变,但它仍然有255个字符最大长度

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top