找不到表'projects_users'

时间:2013-02-11 21:04:15

标签: ruby-on-rails database ruby-on-rails-3

我不小心将其中一个模型命名为复数,因此我手动更改了名称:

projects_users.rb -> projects_user.rb

...和...

class ProjectsUsers < ActiveRecord::Base   ->    class ProjectsUser < ActiveRecord::Base

...以及包含迁移的表名。

现在我收到一条错误告诉我:

Could not find table 'projects_users'

这很奇怪,因为这是数据库的旧名称,我无法在我的代码中找到我引用此名称的任何位置。

使用表projects_user的控制器是项目控制器,错误引用以下内容(第3行):

1.   def edit
2.     @project = Project.find(params[:id])
3.     @members = ProjectsUser.where(:project_id => params[:id])
4.   end

有什么不对?我应该在哪里看?

Schema.rb对于这个表我能说的是正确的:

create_table "projects_user", :force => true do |t|
  t.integer "project_id"
  t.integer "user_id"
end

add_index "projects_user", ["project_id", "user_id"], :name => "index_projects_users_on_project_id_and_user_id"

1 个答案:

答案 0 :(得分:3)

您的模型应该是单数形式,但您的数据库表应该仍然是复数形式。您的架构表明数据库表将是单数(projects_user)。

因此ProjectsUser模型应该在您的数据库中有相应的projects_users表。