Помогите разобраться со связями.
Описал модели таким образом:
class Project
include DataMapper::Resource
property :id, String, :key => true
has n, :cities, :through => Resource
# вот тут что-то не то
has n, :countries, 'Country', :through => :cities, :via => :country
end
class City
include DataMapper::Resource
property :id, String, :key => true
belongs_to :country
has n, :projects, :through => Resource
end
class Country
include DataMapper::Resource
property :id, String, :key => true
has n, :cities
has n, :projects, 'Project', :through => :cities, :via => :projects
end
В итоге получилось так:
# все города в стране
Country.get('ru').cities
# все проекты в стране
Country.get('ru').projects
# все проекты в городе
City.get('sochi').projects
# все города, в которых есть проекты
Project.all.cities
# все страны, в которых есть этот проект
Project.get('forletter').countries
# вот тут суть вопроса
# все страны, в которых есть проекты
Project.all.cities.country
Чтобы получить все страны, в которых есть проекты необходимо делать так
Project.all.cities.country
А хотелось бы делать так, но это возвращает пустой массив =\
Project.all.countries
Помогите реализовать мою хотелку