我有一个User
模型,可以从他们创建的CardSignup
模型获取礼品券。两个关联模型可以共享相同的连接名称吗?
不过,我也想从所谓GiftConversion
一个单独的模型我的模型设置为这样就给了免费礼券:
User.rb
has_many :conversions, :foreign_key => :converted_by, :class_name => "CardSignup"
has_many :conversions, :foreign_key => :converted_by, :class_name => "GiftConversion"
CardSignup.rb
belongs_to :converted_by, :class_name => "User"
GiftConversion
belongs_to :converted_by, :class_name => "User"
这样,我想要做的就是键入User.find(x).conversions
,并且只要它会返回两个CardSignup
模型和GiftConversion
模型作为自己的foreign_key :converted_by
关联到用户模型。
不幸的是,这不能正常工作。相反,编译器只是抓住了后面的说法。在这种情况下,GiftConversion
,并且只允许将其识别为User.find(x).conversions
。
有谁知道我可以如何使User
模型共享同名的两个模型?
我真的不能让这种正面或反面。但这似乎是一个好主意。 – Trip
这篇文章解释得很好:http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html –
它仍然没有解释如何合并三个不同的模型在这2到1/1到2个多态关联。 – Trip