如何修复一些ActiveRecord关系

时间:2019-04-27 22:20:50

标签: activerecord

我正在努力解决一些关系。

我有三个模型,一些关系起作用,另一些返回nil或什么也没有。 一流是品牌。

$("#banner").hover( function() {
      if ( $("#banner").hasClass("bannerReady") ) runOne();
  }, function() {
      runTwo();
  }
});

那我有公司。品牌与公司之间的关系是多对多的,所以我有联接表。

class Brand < ActiveRecord::Base
  has_and_belongs_to_many :companies, class_name: 'Brand::Company'
  has_many :contacts, class_name: 'Brand::Company'
end

最后我有联系人:他们属于公司。

class Brand::Company < ActiveRecord::Base
  self.table_name = "companies"

  has_many :contacts, class_name: 'Brand::Contact', foreign_key: :company_id
  has_and_belongs_to_many :contacts, class_name: 'Brand::Contact', foreign_key: :company_id, association_foreign_key: :contact_id
  has_and_belongs_to_many :brands, foreign_key: :company_id, association_foreign_key: :brand_id
end

create_table "brands_companies", id: false, force: :cascade do |t|
    t.integer "brand_id",   null: false
    t.integer "company_id", null: false
  end

create_table "contacts", force: :cascade do |t| t.integer "company_id", null: false end class Brand::Contact < ActiveRecord::Base belongs_to :company, class_name: 'Brand::Company' has_many :brands, through: :company end ->不起作用,返回错误

Brand.first.contacts

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column companies.brand_id not exist ->有效

Brand.first.companies->有效

Brand.first.companies.first.contacts->有效

Brand::Company.first.brands->不起作用

Brand::Contact.first.company->不起作用

看起来我在表键中有些地方出错了,但是我不明白是什么...

0 个答案:

没有答案