簡體   English   中英

rails 中 has_and_belongs_to_many 關聯的問題

[英]issue in has_and_belongs_to_many association in rails

當前存在具有 has_many projectuser

但現在我想更新project has_many useruser has_many project

但我收到錯誤- 找不到表'projects_users'

在項目.rb

has_and_belongs_to_many :users

用戶.rb

has_and_belongs_to_many :projects

生成的遷移

rails g migration CreateProjectsUsersJoinTable

得到錯誤 -

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

我認為這可能有助於在 project_users 表中運行rails g migration create_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

如果您的 rails 版本大於 5,您可以使用 create_join_table 進行新的遷移。

rails g migration CreateJoinTableProjectsUsers project user

這將生成以下內容:

class CreateJoinTableProjectsUsers < ActiveRecord::Migration
  def change
    create_join_table :projects, :users do |t|
      t.index [:project_id, :user_id]
      # t.index [:user_id, :project_id]
    end
  end
end

在 project.rb 中

has_and_belongs_to_many :users

用戶.rb

has_and_belongs_to_many :projects

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM