在Rails中添加utf-8和InnoDB指令时出现迁移语法错误



我正在尝试创建这个rails迁移

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(:formats,:options=>'ENGINE=InnoDB D。。。^语法错误,意外的")",应为关键字_end…=InnoDB DEFAULT CHARSET=utf8')执行|t|…^

语法错误,意外的关键字_end,应为$end

知道为什么会发生这种事吗?我找不到任何语法问题。。很可能是因为我刚接触Rails:)

您的语法不正确:

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

相关内容

  • 没有找到相关文章

最新更新