Ruby on rails 在Rails中添加utf-8和InnoDB指令时出现迁移语法错误
我正在尝试创建这个rails迁移Ruby on rails 在Rails中添加utf-8和InnoDB指令时出现迁移语法错误,ruby-on-rails,ruby-on-rails-3,rails-migrations,Ruby On Rails,Ruby On Rails 3,Rails Migrations,我正在尝试创建这个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
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
class CreateFormats'ENGINE=InnoDB DEFAULT CHARSET=utf8')do | t|
t、 名字
t、 描述
t、 公司
t、 时间戳
结束
结束
def自动关闭
下拉列表:格式
结束
结束
我在执行过程中会遇到如下错误:
语法错误,意外的“,”,应为“)”
创建表格(:格式,:选项=>'引擎=InnoDB D。。。
^
语法错误,意外“'),应为关键字_end
…=InnoDB默认字符集=utf8')do | t|
... ^
语法错误,意外的关键字\u 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|
i、 e:没有空间。否则,您只需将:formats
与:options=>…
作为函数的第一个参数进行分组
你可能也需要改变
t.name
t.description
t.company
差不多
t.string :name
t.string :description
t.string :company
最初的错误得到了修复,但现在我有了一个:未定义的#方法'name',我刚刚在我的答案中添加了一个关于这一点的注释,但是表定义语法的其余部分也有点不正确。