Рельсы STi с 1 до 1 ассоциацией - PullRequest
0 голосов
/ 03 марта 2019

У меня есть 2 существующие модели, которые я хотел бы создать ассоциацию 1: 1.Моя единственная проблема заключается в том, что эти две модели наследуются от одного родительского класса

class Model < ActiveRecord::Base

class Student < Model
  #has one :info


class Info < Model
  #belongs to :student

Как мне создать миграцию для этого?

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

Почему вы используете Модель в качестве названия модели?Я думаю, что вы ищете полиморфное отношение https://guides.rubyonrails.org/association_basics.html#polymorphic-associations

Но без дополнительной информации о ваших моделях мы не сможем дать лучший ответ.Возможно, вы захотите взглянуть на эту статью о ИППП и полиморфных отношениях

0 голосов
/ 03 марта 2019

С https://edgeguides.rubyonrails.org/active_record_migrations.html

rails generate migration AddUserRefToProducts user:references

создает

class AddUserRefToProducts < ActiveRecord::Migration[5.0]
  def change
    add_reference :products, :user, foreign_key: true
  end
end

Эта миграция создаст столбец user_id и соответствующий индекс.Дополнительные параметры add_reference см. В документации API.

В вашем случае:

rails generate migration AddStudentRefToInfo student:references

, что приведет к следующей миграции:

class AddUserRefToProducts < ActiveRecord::Migration[5.0]
  def change
    add_reference :info, :student, foreign_key: true
  end
end

Примечание.при этом предполагается, что ваша модель «Info» хранится в таблице с именем «info».Это может быть «информация».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...