我不小心将其中一个模型命名为复数,因此我手动更改了名称:
projects_users.rb -> projects_user.rb...and...
class ProjectsUsers < ActiveRecord::Base -> class ProjectsUser < ActiveRecord::Base使用...and命令迁移表名。
。
现在我收到一个错误,告诉我:
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"发布于 2013-02-12 05:08:03
您的模型应该是单数形式,但数据库表应该仍然是复数形式。您的模式指示数据库表将是单数(projects_user)。
因此,ProjectsUser模型在您的数据库中应该有一个对应的projects_users表。
https://stackoverflow.com/questions/14820814
复制相似问题