내 모델을 효율적으로 정리하는 데 문제가 있습니다. 이 모델의 종류 :레일 : 모델을 정렬하는 방법?
City
Building
CityBuilding
WoodProduction
이제 도시에는 city_buildings를 통해 많은 건물이 있습니다. 도시 건물에는 인구와 같은 기본적인 속성이 있습니다. 그러나 제재소에 대해 말하면 목재 생산량과 같이 더 많은 정보를 보유해야하는 2 개의 건물이 있습니다.
그래서,이 예에서, 제재소, 나는 같은 것을 할 수 있기를 원하는 것 :
current_city.wood_production.amount
을 그리고 나무의 양을 얻을, 도시 한 wood_production 연결을 가지고 제공. 이 시점까지는 모든 것이 잘됩니다.
하지만 wood_production은 목재가 생성되는 속도도 저장해야합니다. 이 비율은 제재소 건물 수준에 대한 정보가 필요한 공식에 의해 산출됩니다 (city_buildings에서 찾을 수 있음). 매우 부 자연스러운 느낌이 경우는, 작동하지만
c = City.first
w = c.wood_production
w.city_buildings.where(:building_id => ...).level
: 그래서, 지금 내가 좋아하는 뭔가를 실행할 수 있습니다
has_many :city_buildings, :through => :city
:
나는 그것이 같은 wood_production에 중첩 된 연결을 사용하여 작업을 만든 나는 이것을 달성하는 훨씬 더 좋은 방법이 있음을 확신합니다.
제발 뭐라고 제안 해주세요 :)?
편집 : 범위가 제재소 건물의 범위 지정과 같은 멋진 솔루션의 일부일 수 있다고 생각합니다. 어쩌면 누군가가 더 자세하게 생각해봤을 것입니다.
를 작동하지 않을 것입니다, 그러나 확실하게 건물 만에 속할 수 있습니다 하나의 도시 ... –
아뇨, 건물은 건물의 정적 인 표현이므로 많은 도시에 속할 수 있습니다. 반면에 city_building은 실제로 특정 도시에만 속할 수 있습니다 (많은 것을 통해 진행됩니다). – Spyros
여기에 어떤 문제가 있습니까? wood_production에서 제재소 builing에가는 더 쉬운 방법을 찾고 있습니까? –