2017-05-15 1 views
0

ich eine M2M-Vereinigung für zwei Modelle erstellen möchten, eine in einem anderen Namespace ist als das andere, wenn ich versuche, die Methoden von has_and_belongs_to_many von jeder Klasse hinzugefügt, um Zugriff auf Schienen sagt mirNamensräume Modell Verbände Spalte Fehler nicht gefunden

Active :: StatementInvalid: PG :: UndefinedColumn: ERROR: Spalte namespace_model1s_model2s.model1_id existiert nicht

Here're mein Modell:

Umfang/model1.rb

class Namespace::Model1 < ActiveRecord::Base 
    has_and_belongs_to_many :model2s 
end 

model2.rb

class Model2 < ActiveRecord::Base 
    has_and_belongs_to_many :namespace_model1s 
end 

erzeugt Migrationsdatei rails g migration CreateJoinTableNamespaceModel1sModel2s namespace_model1 model2

class CreateJoinTableNamespaceModel1sModel2s < ActiveRecord::Migration 
    def change 
    create_join_table :namespace_model1s, :model2s do |t| 
     # t.index [:namespace_model1_id, :model2_id] 
     # t.index [:model2_id, :namespace_model1_id] 
    end 
    end 
end 

diesen Befehl von der Ausführung und finaly die resultierende schema.rb

create_table "namespace_model1s_model2s", id: false, force: :cascade do |t| 
    t.integer "namespace_model1_id", null: false 
    t.integer "model2_id",   null: false 
end 

Also, kann mir jemand sagen, wo ich vermasselt?

Antwort

0

Also war mein Fehler, dass ich vergessen habe, class_name zu definieren: für jeden Aufruf außerhalb des Namensraums.

Verwandte Themen