Есть три модели: Application - приложения, Device - устройства на которое разрешено установить приложение (просто модель и марка), UserDevice - реальные пользовательские устройства зарегестрированные в системе (принадлежит Deviсe содержит версию OS и прочую инфу для статистики).
class Application < ActiveRecord::Base
has_and_belongs_to_many :devices
has_many :user_devices, through: :devices
end
class Device < ActiveRecord::Base
belongs_to :manufacture, dependent: :destroy
has_and_belongs_to_many :applications
has_many :user_devices
end
class UserDevice < ActiveRecord::Base
belongs_to :device
end
Логика заказчика следующая:
Если у Application есть Device то устанавливать приложение только на них. Если нет, то устанавливать на все.
Мне нужно получить список всех реальных устройств для которых доступно приложение.
В первом случае (у приложения есть ограничение по устройствам) без проблем работает
Application.find(2).user_devices
Как возвращать все зарегистрированные пользовательские устройства если у Application нет Devices?