首页 > 解决方案 > rails 中 has_and_belongs_to_many 关联的问题

问题描述

目前user与 has_many存在project

但现在我想更新projecthas_manyuseruserhas_many project

但我收到错误- 找不到表'projects_users'

在项目.rb

has_and_belongs_to_many :users

用户.rb

has_and_belongs_to_many :projects

生成的迁移

rails g migration CreateProjectsUsersJoinTable

得到错误 -

在 index#controller 行上找不到表 'projects_users'
- @projects = current_user.projects

标签: ruby-on-rails

解决方案


我认为这可能有助于rails g migration create_project_users 在 project_users 表中运行

class CreateProjectUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :project_users do |t|
      t.integer :user_id
      t.integer :project_id
    end
  end
end

然后user.rb

has_many :project_users
has_many :projects, through :project_users

并在 project.rb

has_many :project_users
has_many :users, through :project_users

项目用户.rb

belongs_to :user
belongs_to :project

推荐阅读