[英]What are the implications of having a model belong to both a child and its parent in Rails 4?
我在Rails 4.2應用程序中具有以下關系設置。 如果我希望Tail屬於Kite,那么我可以引用一般的Kite類及其關聯的尾部之間的關系-這是Rails的反模式嗎? 此時,在代碼中,我需要在尾部添加kite_id。 (目前,它同時具有beach_kite_id和snow_kite_id)。 有什么方法可以利用前面提到的* _kite_id,而不必在尾巴上添加kite_id?
class Kite
end
class BeachKite < Kite
has_many :tails
end
class SnowKite < Kite
has_many :tails
end
class Tail
belongs_to :snow_kite
belongs_to :beach_kite
end
class Kite < ActiveRecord::Base
has_many :tails, as: :kite
end
class BeachKite < Kite
end
class SnowKite < Kite
end
class Tail < ActiveRecord::Base
belongs_to :kite, polymorphic: true
end
tails
表存儲了kite_id
和kite_type
因為它是多態的 。
試試吧:
snow_kite = SnowKite.create(tails: [Tail.create])
Tail.last.kite => snow_kite
beach_kite = BeachKite.create(tails: [Tail.create])
Tail.last.kite => beach_kite
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.