2013-07-15 49 views
1

我正在使用旧数据库,但无法对其进行更改。Ruby on Rails - 列名称与关系名称相同

user 
--------- 
user_id | name | plan 
1   'bob' 20 

​​是计划表的外键。 所以回报率,如果我写User.find(1).plan我得到20,但我想这个计划对象

class User < ActiveRecord::Base 
    belongs_to :plan, :foreign_key => :plan # this causes conflict because the names should not be equal 

我可以在轨道改变存取列的名称?

回答

1

试试这个,

:class_name是你在找什么。

class Plan < ActiveRecord::Base 
    has_many :users, :foreign_key => 'user_id' 
end 

class User < ActiveRecord::Base 
    belongs_to :alpha, :class_name => 'Plan', :foreign_key => 'plan' 
end 
+0

感谢,我试图得到一个计划对象时,我写的'user.plan' –

相关问题