Как получить загруженную условно, чтобы потом загружаться лениво с помощью ActiveRecord и Rails - PullRequest
1 голос
/ 23 мая 2009

Сначала позвольте мне показать код.

class User
  has_and_belongs_to_many :roles
  named_scope :employees, { :conditions => ["roles.name = 'Employee'"], :include => :roles }
end

ОК, поэтому позже в контроллере я хотел найти всех сотрудников правильно. Я установил именованную область видимости, чтобы помочь сделать это с соединением и условным поиском. Но проблема в том, что я хочу показать все роли этих пользователей, но при этом отобразится только роль сотрудника.

Есть ли в любом случае, что я могу сказать "user.roles" и иметь ленивую загрузку в представлении после того, как я уже загружал его?

1 Ответ

2 голосов
/ 23 мая 2009

В документации для habtm (а также has_many) говорится, что вы можете получить доступ к коллекции с необязательным параметром:

collection (force_reload = false)

Возвращает массив всех связанных объектов. Пустой массив возвращается, если ничего не найдено.

Вы можете перезагрузить роли с помощью user.roles(true).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...