作者:学海无涯 | 来源:互联网 | 2023-09-23 21:41
我正在尝试制作一个像这样的非常简单的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
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
Tasks: TOP => db:migrate
(See full trace by running task with --trace)`
因为这个问题,我感到非常困惑吗?我是新手,正在尝试制作一个简单的程序,所以请帮助我,非常感谢。
您的迁移文件生成错误(可能是由于scaffold命令中的\
)。要解决此问题,请删除:\ t.string
:
class CreateProducts 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