gem 'rails', '4.2.7.1'
class Property < Accommodation
has_many :attachments, as: :attached_item, dependent: :destroy
end
class Accommodation < ActiveRecord::Base;
end
class Attachment < ActiveRecord::Base
belongs_to :attached_item, polymorphic: true
end
Ассоциация прекрасно работает в rails 4.2
Property.last.attachments
Property Load (0.9ms) SELECT "accommodations".* FROM "accommodations" WHERE "accommodations"."type" IN ('Property') ORDER BY "accommodations"."id" DESC LIMIT 1
Attachment Load (0.5ms) SELECT "attachments".* FROM "attachments" WHERE "attachments"."attached_item_id" = $1 AND "attachments"."attached_item_type" = $2 [["attached_item_id", 1], ["attached_item_type", "Property"]]
Аналогичная ассоциация в Rails 5.0
class CustomInquiry < ApplicationRecord;
end
class ChildInquiry < CustomInquiry
has_many :text_histories, as: :mailed_item, dependent: :delete_all
end
class TextHistory < ApplicationRecord
belongs_to :mailed_item, polymorphic: true
end
2.4.0 :002 > ChildInquiry.last.text_histories
ChildInquiry Load (1.2ms) SELECT "custom_inquiries".* FROM "custom_inquiries" WHERE "custom_inquiries"."type" IN ('ChildInquiry') ORDER BY "custom_inquiries"."id" DESC LIMIT $1 [["LIMIT", 1]]
TextHistory Load (0.4ms) SELECT "text_histories".* FROM "text_histories" WHERE "text_histories"."mailed_item_id" = $1 AND "text_histories"."mailed_item_type" = $2 [["mailed_item_id", 197], ["mailed_item_type", "CustomInquiry"]]
Но здесь второй запрос должен выполняться как -
TextHistory Load (0.4ms) SELECT "text_histories".* FROM "text_histories" WHERE "text_histories"."mailed_item_id" = $1 AND "text_histories"."mailed_item_type" = $2 [["mailed_item_id", 197], ["mailed_item_type", "ChildInquiry"]]
Может ли кто-нибудь помочь мне с тем, что обновляется в rails 5 и любым патчем обезьяны, чтобы переопределить это.