How to access parent property

Hi,

I am having difficulties accessing parent properties/attributes from
the child. Anyone could shed some lights onto this?

Heres a sample code:

class Parent < ActiveRecord::Base
  :has_many => :childs
  @connector
  def before_save
    @connector = 'some connector object'
    0..9.do |count|
      self.childs << Child.new
      self.childs[count].connector = @connector
    end
  end
end

class Child < ActiveRecord::Base
  :belongs_to => :parent
  @connector
   def before_save
      # code goes here to access @connector
   end
end

The above is just a recreation of what I am looking to do. So
basically I want to be able to access objects like the connector from
the child, or even the parent itself by something like
self.parent.attributes.

Any ideas?

thanks,

nayeem

Hi, when I saw your models, I was thinking that you should have the
following relationships:

Parent has many children

Child has many parents

Thus, you should have the following database tables: children and
parents. By doing this, this becomes a many to many relationship.

Good luck,

-Conrad

No I need to have it so that Child has one parent.

I managed to get a reference to the parent by using the ObjectSpace. But its almost a hack then a nice way of doing it.

developerinlondon wrote:

Hi,

I am having difficulties accessing parent properties/attributes from
the child. Anyone could shed some lights onto this?

Heres a sample code:

[...]

Your sample code will not do the job. All you need is

class Parent > ActiveRecord::Base
  has_many :children
end

class Child > ActiveRecord::Base
  belongs_to :parent
end

...and parent.children and child.parent will work as you'd like.
@connector is unnecessary.

Check the docs for Associations; Rails makes this ridiculously simple.

Best,

That Works! Thanks!