轨道上的红宝石 - 找不到表'projects_users'



我不小心用复数命名了其中一个模型,所以我手动更改了名称:

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"

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

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

相关内容

  • 没有找到相关文章

最新更新