获取 Rails 错误“语法错误,意外 tSYMBEG,需要关键字_do 或 '' 或 '('”

Posted

技术标签:

【中文标题】获取 Rails 错误“语法错误,意外 tSYMBEG,需要关键字_do 或 \'\' 或 \'(\'”【英文标题】:Getting Rails error "syntax error, unexpected tSYMBEG, expecting keyword_do or '' or '('"获取 Rails 错误“语法错误,意外 tSYMBEG,需要关键字_do 或 '' 或 '('” 【发布时间】:2014-08-05 02:47:24 【问题描述】:

我正在尝试通过键入以下内容将 subject_idcourse_id 迁移到 users 表:

rails generate migration add_course_id_and_subject_id_to_users course_id:integer, subject_id:integer

但是,它会导致错误:

_add_course_id_and_subject_id_to_users.rb:4:语法错误,意外的 tSYMBEG,需要关键字_do 或 '' 或 '('

不知道为什么会这样。

【问题讨论】:

【参考方案1】:

这是 shell 语法,不是 Ruby 语法,所以你需要在属性 defs 之间去掉逗号:

rails generate migration add_course_id_and_subject_id_to_users course_id:integer subject_id:integer

使用逗号,您尝试添加两个字段,“course_id:integer”(逗号!)和“subject_id:integer”,其类型分别为“integer”(逗号!)和“integer”。

在某个地方,生成的 Ruby 代码会出现语法错误并引发异常。

【讨论】:

以上是关于获取 Rails 错误“语法错误,意外 tSYMBEG,需要关键字_do 或 '' 或 '('”的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3 - 获取一个字段的完整错误消息

带有 Rails(webpacker)的 Vue 错误:“无法获取 /”

如何在 Rails 中实现 Paypal 回调? (获取 InvalidAuthenticityToken 错误)

当我尝试在 rails 2.3.11 的视图中获取 activeRecord 对象的参数时出现错误

Rails 跨域 ajax 获取请求 (CORS)

在Michael Hartl的Ruby on Rails教程中获取错误消息:MicropostsController中的NoMethodError #create,如何避免收到此消息?