我无法生成迁移 - “必须指定控制器的非法路由” - 我哪里出错了?

时间:2010-03-26 17:21:10

标签: ruby-on-rails ruby migration

背景:我正在使用InstantRails 2.0

我想使用以下语法向现有表添加新列:

ruby​​脚本/生成迁移add_fieldname_to_tablename fieldname:string

所以我试过

ruby​​脚本/生成迁移add_invites_to_user邀请:整数 ruby脚本/生成迁移add_invites_to_users邀请:整数

并进一步测试

ruby​​脚本/生成迁移AddInvites ruby脚本/生成迁移AddInvites邀请:整数

所有上述内容都给了我

builder.rb:'build'中的175:非法路由:必须指定:controller! (引发ArgumentError)

2 个答案:

答案 0 :(得分:3)

知道了,

我指定了一条没有指示控制器的路线。

即map.connect'users / invite /:id'

我通过添加以下来修复它:controller => '用户'

map.connect'users / invite /:id',: controller => '用户'

我在服务器运行时设置了第一条路线并且工作正常!

答案 1 :(得分:2)

解释为什么会发生这种情况有助于:

当您运行script/generate时,Rails将实例化您的应用程序,其中包括将您的路由加载到其他内容中。这可能看起来过多,但它是“最好的”,因为Rails初始化过程中加载的其他内容(如插件,gems和初始化程序)可能会影响迁移的运行方式。

所以是的,如果你有错误的路由代码,它会在你尝试生成任何东西时中断。