Ruby on Rails - 列名与关系名相同

时间:2013-07-15 19:17:49

标签: ruby-on-rails-3 activerecord

我正在使用遗留数据库而我无法更改它。

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

plan是计划表的外键。 所以在RoR中,如果我写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

我可以更改Rail中访问者列的名称吗?

1 个答案:

答案 0 :(得分:2)

试试这个,

  

: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