Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rails renaming associations

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?

like image 731
Bryan Ward Avatar asked Jul 23 '09 00:07

Bryan Ward


2 Answers

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.

like image 101
Matt Grande Avatar answered Oct 22 '22 20:10

Matt Grande


Apparently :class_name has been replaced with :source.

like image 29
kbighorse Avatar answered Oct 22 '22 19:10

kbighorse