1

我正在尝试制作一个像这样非常简单的 Rails 程序。起初,我通过这个命令在 Rails 中做了一些事情:

rails generate scaffold Product \ title:string desciption:text image_url:string price:decimal

我没有错误,然后我尝试通过命令创建数据库,rails db:migrate但出现此错误

20191203044840 CreateProducts: migrating 
create_table(:products)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:`

undefined method string for :t:Symbol
C:/Users/xxx/Desktop/xxx/X/db/migrate/20191203044840_create_products.rb:4:in block in change
C:/Users/xxx/Desktop/xxx/X/db/migrate/20191203044840_create_products.rb:3:in change'
bin/rails:4:in require
bin/rails:4:in <main>

Caused by:
NoMethodError: undefined method string for :t:Symbol
C:/Users/xxx/Desktop/xxx/X/db/migrate/20191203044840_create_products.rb:4:in block in change
C:/Users/xxx/Desktop/xxx/X/db/migrate/20191203044840_create_products.rb:3:in change
bin/rails:4:in require
bin/rails:4:in <main>
Tasks: TOP => db:migrate
(See full trace by running task with --trace)`

因为这个问题我很困惑?我是一个新手,正在尝试制作一个简单的程序,所以请帮助我,非常感谢。

4

1 回答 1

2

您的迁移文件生成错误(可能是因为\在脚手架命令中)。要修复它,请删除:\ t.string

class CreateProducts < ActiveRecord::Migration[6.0]
  def change 
    create_table :products do |t| 
      t.string :title
      t.text :desciption
      t.string :image_url
      t.decimal :price, precision: 8, scale: 2
      t.timestamps
    end
  end
end
于 2019-12-03T07:03:29.883 回答