Два внешних ключа в таблице, ссылающиеся на один первичный ключ в другой таблице с помощью миграции rails - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь создать таблицу с 2 FK, ссылаясь на 1 PK в другой таблице.

class CreateJobapps < ActiveRecord::Migration[5.1]
  def change
    create_table :jobapps do |t|
      t.references :job, foreign_key: { job: :id }, index: { unique: true}
      t.references :user, foreign_key: { user: :id }, index: { unique: true}
      t.timestamps


    end
  end
end

Является ли этот метод правильным? если так, как я могу получить вывод, если я предоставлю FK уважаемой таблицы.

Вот как выглядит моя таблица Jobapp

enter image description here

Я пытался использовать Jobapp.joins(:user), но безрезультатно Должен ли я писать принадлежат или есть в файле модели has_many?

1 Ответ

1 голос
/ 16 марта 2020
class CreateJobapps < ActiveRecord::Migration[5.1]
  def change
    create_table :jobapps do |t|
      t.references :job, foreign_key: { job: :id }
      t.references :user, foreign_key: { user: :id }
      t.timestamps
    end
    # Add a compound index instead - you may need to switch the order to
    # tweak the index depending on how it is used.
    add_index :jobapps, [:job_id, :user_id], unique: true 
  end
end
class Jobapp < ApplicationRecord
  belongs_to :user
  belongs_to :job
end
class User < ApplicationRecord
  has_many :jobapps
  has_many :jobs, through: :jobapps
end
class Job < ApplicationRecord
  has_many :jobapps
  has_many :users, through: :jobapps
end
...