Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 已取消迁移:未定义的方法`int';_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 已取消迁移:未定义的方法`int';

Ruby on rails 已取消迁移:未定义的方法`int';,ruby-on-rails,ruby,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:0x0

当我运行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?
——创建表格(:posts)
雷克流产了! StandardError:发生错误,所有后续迁移都已取消:`
的未定义方法“int”# 你是说?在里面

有什么想法或建议吗?

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

我只是将db/migrate中的migrate文件从
int
更改为
integer
。如下所示:
t.integer:age

可能发生这种情况的原因是,如果在
rails生成模型过程中意外地获得了一个列名和一个错误的数据类型…

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

t.预约:参考
但应该是这样

t.参考资料:预约

同样的错误不仅会发生在
引用上,也会发生在任何其他数据类型上(例如
整数
字符串
,等等)。

发生这种情况的原因之一是,如果在
rails生成模型时意外地以错误的方式获得了列名和数据类型…

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

t.预约:参考
但应该是这样

t.参考资料:预约

同样的错误也可能发生在
引用
,以及任何其他数据类型(例如
整数
字符串
等等)上。

请在创建
posts
表时发布迁移文件,您可能编写了类似
foo:int
的内容。应该是
foo:integer
。在您的迁移文件中修复它,它将工作-)posts迁移是导致错误的原因。我上面的评论可能是你们的解决方案。谢谢大家。解决方案是@marmeladze如何写的。我只是将db/migrate中的migrate文件从
int
更改为
integer
。像这样:
t.integer:age
。Tanks@marmeladze.请在创建
posts
表时发布迁移文件,您可能编写了类似
foo:int
的内容。应该是
foo:integer
。在您的迁移文件中修复它,它将工作-)posts迁移是导致错误的原因。我上面的评论可能是你们的解决方案。谢谢大家。解决方案是@marmeladze如何写的。我只是将db/migrate中的migrate文件从
int
更改为
integer
。像这样:
t.integer:age
。Tanks@marmeladze.你的回答解决了我的错误。我想知道为什么会发生这种错误。我运行了
rails g model Item month:string year:int name:string price:float description:text path:string type:string
,然后紧接着运行了
rake db:migrate
——rails会出现几乎可以称为打字错误的情况,这似乎很奇怪。。(例如,“Int”应该是“Integer”)您的答案解决了我的错误。我想知道为什么会发生这种错误。我运行了
rails g model Item month:string year:int name:string price:float description:text path:string type:string
,然后紧接着运行了
rake db:migrate
——rails会出现几乎可以称为打字错误的情况,这似乎很奇怪。。(即“Int”,其中应表示“Integer”)