Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中添加utf-8和InnoDB指令时出现迁移语法错误_Ruby On Rails_Ruby On Rails 3_Rails Migrations - Fatal编程技术网

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

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

我正在尝试创建这个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
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',我刚刚在我的答案中添加了一个关于这一点的注释,但是表定义语法的其余部分也有点不正确。