rails renaming associations

Bryan Ward picture Bryan Ward · Jul 23, 2009 · Viewed 10.4k times · Source

I have two models, TreeNode and User. Each user has_one TreeNode, which is the root of the tree.

class TreeNode
  acts_as_tree
  belongs_to :user
end

class User
  has_one :tree_node
end

I would like to have this setup so that rails will make the association so that I can do something like

User.first.tree

instead of

User.first.tree_node

How would one go about doing something like this?

Answer

Matt Grande picture Matt Grande · Jul 23, 2009
has_one :tree, :class_name => "TreeNode"

Keep in mind, this assumes a foreign key called user_id in the tree_nodes table.

Edit: If that doesn't work, you might need to specify the foreign key (:foreign_key => :user_id), but I don't think so.