2012-01-10 121 views
0

我有一个对自定义外键名(非协会+ _id),像这样:与关联表相同的外键?

belongs_to :investment_advisor, :foreign_key => "investment_advisor" 

因为轨道会产生混乱而犯规知道如果IM指协会或外键这就产生了一个问题。有什么办法我可以重命名外键(不接触数据库)到别的东西?像一个变量或东西?

回答

2

你可以重命名你的协会,为一个:

belongs_to :investment_advisor_obj, 
      :foreign_key => "investment_advisor", 
      :class_name => "InvestmentAdvisor" 

(或者你可以挑一个不那么愚蠢的名字)

+0

但犯规':investment_advisor'需要是表的名称?或者它只是表的名称,':class_name'是表的名称 – 2012-01-10 16:03:25

+0

@JonahKatz:不,它不需要。但Rails必须能够在这个关联中找到其他类。因此':class_name'选项。 – 2012-01-10 16:09:06

+0

给它一个去@JonahKatz。协会的名字真的就是这个名字。它通过询问'InvestmentAdvisor.table_name'找出表名, – 2012-01-10 16:11:04