未找到命名空间模型关联错误列

时间:2017-05-15 15:58:46

标签: ruby-on-rails associations rails-activerecord

我想为两个模型创建一个M2M关联,一个在不同的命名空间中,当我尝试从任一类访问has_and_belongs_to_many添加的方法时,rails告诉我

ActiveRecord :: StatementInvalid:PG :: UndefinedColumn:ERROR:column namespace_model1s_model2s.model1_id不存在

这是我的模特:

范围/ 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

从执行此命令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

最终产生的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

那么,任何人都可以告诉我在哪里蠢蠢欲动吗?

1 个答案:

答案 0 :(得分:0)

所以,我的错误是我忘了为命名空间外的每个调用定义class_name: