Pierre-Charles David wrote: > > In the end, the page should contain a list of articles, and each article > > a list of elements. > > I want to have acces to it like: > > > > puts currentpage.articles[2].elements[5].content > > > > I want to be able to manipulate this data structure like f.i.: > > > > currentpage.articles[2].elements[5].content = 'Hello world' > > > > I am not sure if or how I can realise this, could somebody please give > > me a hint? > > Ruby makes attributes hidden ('private') by default. You need to > explicitely define reader methods for those you want to make accessible: Okay, so now I have class Page attr_writer :articles def initialize @articles = [] end ... end class Article attr_writer :elements def initialize @elements = [] end ... end class Element attr_writer :content ... end But how do I go from here? The following does not work: currentpage = Page.new currentpage.articles.push(Article.new) I get a 'undefined method: articles' error. Regards, Erik.