2009-07-23 72 views
12

我有两个模型,TreeNode和User。每个用户has_one TreeNode,它是树的根。rails重命名关联

class TreeNode 
    acts_as_tree 
    belongs_to :user 
end 

class User 
    has_one :tree_node 
end 

我想有这样的设置,使轨道将建立关联,这样,我可以这样做

User.first.tree 

,而不是

User.first.tree_node 

一个会如何做像这样?

回答

23
has_one :tree, :class_name => "TreeNode" 

请记住,这是假定在tree_nodes表称为user_id的外键。

编辑:如果不工作,你可能需要指定的外键(:foreign_key => :user_id),但我不这么认为。

+0

谢谢,这工作!我知道有任何简单的方法来做到这一点。 – 2009-07-23 00:56:10

3

显然:class_name已被替换为:source。

+4

根据[rails协会指南](http://guides.rubyonrails.org/association_basics.html),class_name和:source仍然存在。 :source用于指定`:has_one ...:through`的源关联 – 2011-10-12 19:10:00