Синтаксические ошибки миграции при добавлении инструкций utf-8 и InnoDB в Rails - PullRequest
0 голосов
/ 26 мая 2011

Я пытаюсь создать эту миграцию рельсов

class CreateFormats < ActiveRecord::Migration
  def self.up
    create_table (:formats , :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8' ) do |t|
      t.name
      t.description 
      t.company

      t.timestamps
    end
  end

  def self.down
    drop_table :formats
  end
end

И во время выполнения возникают ошибки, которые выглядят так:

синтаксическая ошибка, неожиданная ',', ожидается ')' create_table(: format,: options => 'ENGINE = InnoDB D ... ^ синтаксическая ошибка, неожиданная') ', ожидаемый ключевое слово_end ... = InnoDB DEFAULT CHARSET = utf8') do | t |... ^

синтаксическая ошибка, неожиданный ключевое слово_end, ожидание $ end

Есть идеи, почему это произошло?Я не могу найти никаких проблем с моим синтаксисом .. скорее всего, потому что я новичок в Rails:)

1 Ответ

2 голосов
/ 26 мая 2011

Ваш синтаксис неверен:

create_table (:formats , :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8' ) do |t|

должно быть

create_table(:formats , :options => 'ENGINE=InnoDB DEFAULT CHARSET=utf8' ) do |t|

т.е. без пробела.В противном случае вы просто группируете :formats с :options => ... в качестве первого аргумента функции.

Возможно, вам также потребуется изменить

t.name
t.description 
t.company

на что-то вроде

t.string :name
t.string :description 
t.string :company
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...