Проблемы присоединения к Rails ActiveRecord - PullRequest
1 голос
/ 18 января 2011

У меня есть следующий код: subscribers = Subscriber.find(:all, :joins => :profile, :conditions => ['subscribers.active IS NULL'])

Когда я делаю это: puts subscribers.first.inspect, я также должен видеть информацию о профиле, но я не ... Вот ассоциации моделей

class Subscriber < ActiveRecord::Base
  has_one :profile
  has_many :medias
end

class Profile < ActiveRecord::Base
  belongs_to :subscriber
end

Я все еще пытаюсь привыкнуть к написанию соединений в MySQL, поэтому извиняюсь за небрежность

1 Ответ

2 голосов
/ 18 января 2011

Попробуйте:

subscribers = Subscriber.find(:all, :include => :profile, :conditions => ['subscribers.active IS NULL'])

Однако проверка не рассматривает вложенные отношения.Вы можете попробовать to_yaml:

puts subscribers.first.to_yaml

Результат структурирован и легко читаем, а include используется только для производительности.Получает профиль с подписчиком в одном запросе.Вы также можете сделать:

puts Subscriber.where('active IS NULL').includes(:profile).first.to_yaml

Обычно вы должны использовать объединения, если вы хотите фильтровать данные по столбцу связанных отношений.

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