Pergunta

Eu criei uma nova tabela incluindo uma "nota" coluna. O padrão é varchar (255) Eu acredito, mas eu gostaria de ter esta coluna seja uma área de texto vs. um campo e para permitir que mais dados. Imagino que eu iria fazer essa alteração no arquivo de ActiveRecord :: Migration mas estou curioso para saber o formato. Eu simplesmente mudar o varchar (255) para varchar (1000), por exemplo? (Se assim o que é o formato?

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

é que o formato certo? Além disso, como faço para obter o campo de entrada a ser várias linhas. Desculpe se isso é coisa fácil, mas eu sou novo em programação e RoR. Obrigado.

Foi útil?

Solução

Você pode simplesmente usar o tipo 'texto' em vez de 'string'.

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

Usando o tipo 'texto' resultará na coluna de banco de dados do tipo texto. VARCHAR é geralmente limitada a um comprimento máximo de 255 (em MySQL, outros SGBDRs têm limites semelhantes).

Se você usar Rails' forma ajudantes, um textarea será a saída para este campo (porque é do tipo 'texto'). textarea é o elemento de formulário que aceita entrada multi-line.

Edit: Se você já migrou o create_table, você pode criar uma nova migração para alterar o tipo de coluna:

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

Outras dicas

O formato correto seria

t.string :note, :limit => 1000

Certifique-se que você está usando uma versão do MySQL (ou qualquer banco de dados) que suporta VARCHAR mais de 256 caracteres.

Se você quiser usar um bloco de texto grande que seria

t.text :note

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters /TableDefinition.html para mais informações

Você pode mudar o comprimento com a opção de limite como assim ...

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

Desde que eu tinha um monte de dados já armazenados eu usei

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

Se parei o:. Limit => opção nulo, em seguida, o tipo de coluna mudaria de varchar ao texto, mas ainda tinha um comprimento máximo de 255 caracteres

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top