我有一個公司實體的位置的HAS_ONE協會:意外的結果查找
class Location < ActiveRecord::Base
attr_accessible :city, :country, :postal_code, :state
end
class Company < ActiveRecord::Base
has_one :headquarters, :class_name => "Location"
end
爲公司實體的基礎架構包含一個LOCATION_ID屬性。我希望我應該能夠訪問公司總部的位置信息,像這樣:
Company.find(12345).headquarters
然而,這導致異常:
SELECT "locations".* FROM "locations" WHERE "locations"."company_id" = 12345 LIMIT 1
ActiveRecord::StatementInvalid: PGError: ERROR: column locations.company_id does not exist
我很困惑,爲什麼這是表現這種方式。我期望FK在公司中,而不是位置(即SELECT * FROM位置WHERE locations.id = 12345)。我用其他方式定義了這種查找方式,它們的行爲與我預期的相同。
有幾件事情需要注意:
- 一個位置不屬於一個公司,許多實體類型可以有一個 位置
- 我已經試過是多/少在我的關聯定義冗長, 似乎沒有什麼區別
- 我也是在一個點試圖「HAS_ONE:位置」讓事情變得簡單, 相同的結果
任何幫助表示讚賞。
:)
A公司,B公司和C公司都可以將其總部設在同一個城市,因此連接良好。 – Kevin
是的,這就是我說的:) – rb512
等一下,你是說belongs_to應該在公司或在位置的鏈接工作? – Kevin