У меня есть две области с правыми внешними объединениями, объявленными в моей модели User. Вот они
scope :users_with_school, joins("right outer join profiles on profiles.user_id = users.id right outer join profiles_schools on profiles.id = profiles_schools.profile_id").uniq
scope :full_profile, joins("right outer join profiles on profiles.user_id = users.id right outer join profiles_schools on profiles.id = profiles_schools.profile_id where users.pic_file_name is not null and profiles.occupation is not null and birthday is not null and profiles.desc is not null and hometown is not null ").uniq
Моя проблема в том, что когда я перезагружаю консоль и вызываю User.all, я вижу, как выполняются обе эти области (т.е. я вижу SQL в окне консоли), но я не вижу никаких других областей. Похоже, что это не влияет на результат запроса, но я все еще не понимаю, почему они выполняются.
Вот пример
ruby-1.9.2-p290: 023> перезагрузите!
Перевалка ...
=> true
ruby-1.9.2-p290 :024 > User.all.count
User Load (296.5ms) SELECT "users".* FROM "users" right outer join profiles on profiles.user_id = users.id right outer join profiles_schools on profiles.id = profiles_schools.profile_id
User Load (7.4ms) SELECT "users".* FROM "users" right outer join profiles on profiles.user_id = users.id right outer join profiles_schools on profiles.id = profiles_schools.profile_id where users.pic_file_name is not null and profiles.occupation is not null and birthday is not null and profiles.desc is not null and hometown is not null
User Load (435.8ms) SELECT "users".* FROM "users"
=> xxxx Users
Затем, когда я снова выполняю запрос без перезагрузки, он просто выполняет запрос User.all
ruby-1.9.2-p290 :025 > User.all.count
User Load (606.7ms) SELECT "users".* FROM "users"
=> xxxx Users (the same as above)
Итак, мой вопрос: почему это происходит и почему это происходит только с этими двумя областями (из 30 или около того), единственное отличие, которое я вижу, состоит в том, что они являются правыми внешними соединениями
Очевидно, что я не хочу, чтобы эти области запускались каждый раз, когда я загружаю класс User, в настоящее время, похоже, именно тогда, когда я перезагружаю все. Любое понимание?
(с использованием postgres, рельсы 3.1.1 ruby 1.9.2)