ruby-on-rails - 将列添加到模型时出现rails语法错误
问题描述
我正在尝试使用遇到错误的rails构建音乐应用程序,只是想知道有人知道这意味着什么吗?
当我这样做的时候
rails g migration add_quantity_to_line_items quantity:integer, default: 1
rails db:migrate
扔了回去
rails aborted!
SyntaxError: /Users/Code/Ruby/musicapp/db/migrate/20190605091214_add_quantity_to_line_items.rb:4: syntax error, unexpected tSYMBEG, expecting do or '{' or '('
add_column :line_items, :default, :string
^
/Users/mrswordsmith/Code/Ruby/musicapp/db/migrate/20190605091214_add_quantity_to_line_items.rb:5: syntax error, unexpected tINTEGER, expecting tSTRING_CONTENT or tSTRING_DBEG or tSTRING_DVAR or tSTRING_END
add_column :line_items, :1, :string
class AddQuantityToLineItems < ActiveRecord::Migration[5.2]
def change
add_column :line_items, :quantity, :integer,
add_column :line_items, :default, :string
add_column :line_items, :1, :string
end
end
解决方案
如果我理解正确,您想要实现的是:
class AddQuantityToLineItems < ActiveRecord::Migration[5.2]
def change
add_column :line_items, :quantity, :integer, default: 1
end
end
您的迁移脚本中有 2 个错误:
- 不能用逗号 (
,
) - 默认迁移生成器不处理默认值,您必须手动更新迁移。
所以迁移脚本应该只是rails g migration add_quantity_to_line_items quantity:integer
推荐阅读
- mqtt - 如何在 eclipse-mosquitto 中使用 QoS MQTT 接收离线客户端的消息?
- go - 尝试下载 git 存储库时 pkg-config 出错
- python - python覆盖一个不同名称的api类方法
- javascript - 为什么我在 v-for 的插槽中只有一个元素?
- laravel - Route:list 在本地机器上工作,但在 laravel 的服务器上出错
- java - 为什么文件没有写入内部存储?
- karate - 如何检查在回归下运行的所有功能文件的报告?
- ssl - 使用 JDBC 瘦客户端通过 SSL 连接到 Ignite 集群
- ms-access - 当 MS-Access 窗体上的另一个组合框的值被修改时,如何更新该窗体上的组合框?
- mysql - DB Schema 设计 Parent Children 孙子