2012-12-03 65 views
0

有2种型号如下的例子模型关系:导轨 - 从自定义列

模型1

column 1 --- column 2 --- column 3 
id  --- fb_id --- someOtherThing 

模型2

column 1 --- column 2 --- column 3 
id  --- fb_id --- someOtherThing 

例如凡,fb_id是Facebook的ID作为大int。

如何从第一个模型的第2列到第2个模型的第2列构造关系(例如belongs_to)?

目前我有做这样的事情:

model 1: 
belongs_to :model2, :foreign_key => 'fb_id' 

但我怎么能预先选择模式1(第2列),必须在第二个模型的列匹配的列? (我认为以这种方式从模型1中获得第1列)。

在合成: 如何创建一个关系(belongs_tohas_manymodel1(:fb_id) => model2(:fb_id)

model1(:id) => model2(:fb_id)

回答

1

如果我理解正确的,你需要做的是检索记录与有效协会, 对?

你可以做,使用下列内容:

Model1.joins(:model2 => :fb_id) 

这只会检索模型1' 有一个有效的关联!

+0

对于寻找有效关联的人有帮助的答案+1,但在我的情况下,我不想检索任何东西,只有良好的模型间关系(我已更新我的帖子,也许现在更清楚了;)) – damoiser

+0

也许会更好,如果你有一个facebook_login模型与你的模型,1和2的多态性关联 – felipeclopes

+0

我不知道我是否可以在我的情况下做一个多态协会,这是更困难的我展示的例子。 – damoiser