迁移已取消:未定义的方法`int'

时间:2017-04-16 20:27:45

标签: ruby-on-rails ruby

当我运行rake db:migrate时,显示以下错误:

-- create_table(:posts)<br>
rake aborted!
StandardError: An error has occurred, all later migrations canceled:`<br>
undefined method 'int' for #
<ActiveRecord::ConnectionAdapters::MySQL::TableDefinition:0x0055c088b9f520>
Did you mean?  in?

有任何想法或建议吗?

2 个答案:

答案 0 :(得分:5)

我只是将db / migrate中的迁移文件从int更改为integer。像这样: t.integer: age

答案 1 :(得分:0)

可能发生这种情况的一个原因是,如果您在 rails generate model ... 期间不小心以错误的方式获得了列名和数据类型。

例如,如果您不小心运行了 rails g model calculations references:appointment(而不是 rails g model calculations appointment:references),那么您将:

t.appointment :references

但应该是

t.references :appointment

同样的错误不仅可能发生在 references 上,也可能发生在任何其他数据类型上(例如 integerstring 等等)。