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

发布于 2024-11-09 11:24:32 字数 634 浏览 6 评论 0原文

我正在尝试创建此 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... ^ 语法错误,意外的“)”,期待关键字_结束 ...=InnoDB 默认字符集=utf8' ) do |t| ... ^

语法错误,意外的 keywords_end,期望 $end

知道为什么会发生这种情况吗?我找不到任何语法问题..很可能是因为我是 Rails 新手:)

I am trying to create this rails migration

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

And I get errors during execution that look like this:

syntax error, unexpected ',', expecting ')'
create_table (:formats , :options => 'ENGINE=InnoDB D...
^
syntax error, unexpected ')', expecting keyword_end
...=InnoDB DEFAULT CHARSET=utf8' ) do |t|
... ^

syntax error, unexpected keyword_end, expecting $end

Any idea why this happened? I can't find any problems with my syntax..most likely because I am new to Rails :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弄潮 2024-11-16 11:24:32

您的语法不正确:

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

Your syntax is incorrect:

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

should be

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

i.e: without the space. Otherwise you are simply grouping :formats with :options => ... as the first argument to the function.

You probably also need to change

t.name
t.description 
t.company

to something like

t.string :name
t.string :description 
t.string :company
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文