У меня есть следующий код:
class Location < ActiveRecord::Base
has_many :geolocations, :as => :geotaggable, :dependent => :destroy
end
class Geolocation < ActiveRecord::Base
belongs_to :geotaggable, :polymorphic => true
end
Когда я делаю: Location.first.geolocations
, моя консоль показывает следующий SQL:
←[1m←[36mGeolocation Load (2.0ms)←[0m ←[1mSELECT `geolocations`.* FROM `geolo
cations` WHERE `geolocations`.`geotaggable_id` = 1←[0m
Принимая во внимание, когда я делаю: Location.find(:first, :include => :geolocations)
, моя консоль показывает этот SQL:
←[1m←[36mGeolocation Load (1.0ms)←[0m ←[1mSELECT `geolocations`.* FROM `geolo
cations` WHERE `geolocations`.`geotaggable_type` = 'Location' AND (((`geolocatio
ns`.`geotaggable_id` = 1)))←[0m
Я проверил свой проект и обнаружил, что всякий раз, когда у меня возникают полиморфные ассоциации, полиморфный тип не включается в запрос SQL.
Это ожидаемое поведение или я что-то упустил?
Я использую рельсы 3.2.0.rc1 и Ruby 1.9.3.Я считаю, что у меня был такой же результат в рельсах 3.0.0.