У меня есть таблицы, которые имеют отношение ко многим. Я создал правильную таблицу codesecure_project_tst_definition, и она работает. Я могу объединить строки, вызвав метод codesecure_projects << для объекта TstDefinition. Проблема в том, что по какой-то причине активная запись хочет использовать Codesecure_project_id в качестве значения идентификатора для таблицы codesecure_project_tst_definition. Что я делаю неправильно? Как это исправить, чтобы при вызове метода codesecure_projects << он не пытался установить идентификатор таблицы codesecure_project_tst_definition? </p>
Я разместил миграции ниже
class CreateCodesecureProjects < ActiveRecord::Migration
def self.up
create_table :codesecure_projects do |t|
t.string :name
t.string :lang
t.timestamps
end
end
def self.down
drop_table :codesecure_projects
end
end
class CreateTstDefinitions < ActiveRecord::Migration
def self.up
create_table :tst_definitions do |t|
t.string :test_name
t.timestamps
end
end
def self.down
drop_table :tst_definitions
end
end
class CreateCodesecureProjectsTstDefinitions < ActiveRecord::Migration
def self.up
create_table :codesecure_projects_tst_definitions do |t|
t.references :codesecure_project
t.references :tst_definition
t.timestamps
end
end
def self.down
drop_table :codesecure_projects_tst_definitions
end
end
Соответствующие части моделей:
class TstDefinition < ActiveRecord::Base
has_and_belongs_to_many :codesecure_projects
has_many :tst_datas
class CodesecureProject < ActiveRecord::Base
has_many :input_abstractions
has_and_belongs_to_many :tst_definitions