rails重命名关联

Bry*_*ard 16 ruby-on-rails associations

我有两个模型,TreeNode和User.每个用户has_oneTreeNode,它是树的根.

class TreeNode
  acts_as_tree
  belongs_to :user
end

class User
  has_one :tree_node
end
Run Code Online (Sandbox Code Playgroud)

我想有这个设置,以便rails将进行关联,以便我可以做类似的事情

User.first.tree
Run Code Online (Sandbox Code Playgroud)

代替

User.first.tree_node
Run Code Online (Sandbox Code Playgroud)

怎么会做这样的事情?

Mat*_*nde 27

has_one :tree, :class_name => "TreeNode"
Run Code Online (Sandbox Code Playgroud)

请记住,这假设user_idtree_nodes表中调用了一个外键.

编辑:如果这不起作用,您可能需要指定外键(:foreign_key => :user_id),但我不这么认为.