我在以有效的方式安排我的模型時遇到了一些麻煩。這些模型的東西:Rails:如何安排模型?
City
Building
CityBuilding
WoodProduction
現在,當然,一個城市有很多通過city_buildings建築物。城市建築具有一些基本屬性,如居住在那裏的人口。但是,如果我們談論的是鋸木廠,那麼有2棟建築需要更多的信息,比如生產的木材數量。
所以,在這個例子中,鋸木廠,我希望能夠做一些事情,如:
current_city.wood_production.amount
而且得到的木材量,提供一個城市有一個wood_production關聯。一切都很好,直到這一點。
但是,木材生產還需要存儲生產木材的比率。這個比率是由一個公式產生的,它需要關於鋸木廠建築物的信息(在city_buildings中找到)。
我已在wood_production使用嵌套協會一樣工作:
has_many :city_buildings, :through => :city
所以,現在我可以執行類似:
c = City.first
w = c.wood_production
w.city_buildings.where(:building_id => ...).level
雖然它的工作原理其中,如果感覺很不自然我有點相信有一個更好的方法來實現這一點。
任何建議請:)?
編輯:我覺得範圍可能是一個很好的解決方案的一部分,就像指定一個鋸木廠建設的範圍,也許有人想到了更詳細的東西,我現在有點處理這個想法。
我是字面這裏,但肯定建築物只能屬於一個城市...... – 2012-01-15 09:46:13
哦,不,建築物是建築物的靜態表示,因此它可以屬於許多城市。另一方面,城市建設確實只能屬於一個特定的城市(它有很多通過) – Spyros 2012-01-15 09:48:14
這裏的問題是什麼?您是否正在尋找一種更簡單的方式來到木材生產的鋸木廠? – 2012-01-15 09:48:36