我正在努力解决一些关系。
我有三个模型,一些关系起作用,另一些返回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
->不起作用
看起来我在表键中有些地方出错了,但是我不明白是什么...