bondarenko
@bondarenko
Spacewalker

Как выбрать все значения если has_many through асоциация возвращает пустой массив?

Есть три модели: 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?
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 1
UserDevice.all, не?
Или я чего-то не понимаю, или все очень просто...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы