# Nested habtm in views

**URL:** <https://www.ruby-forum.com/t/nested-habtm-in-views/168552>\
**Category:** Rails\
**Created:** [May 22, 2009, 10:44am UTC](https://www.ruby-forum.com/t/nested-habtm-in-views/168552 "2009-05-22T10:44:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![jdunneuk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/35a633/32.png) [@jdunneuk](https://www.ruby-forum.com/u/jdunneuk)\
**Post date:** [May 22, 2009, 10:44am UTC](https://www.ruby-forum.com/t/nested-habtm-in-views/168552/1 "2009-05-22T10:44:39Z")

</div>

Hi folks,

hope someone can help me with this:

There are four tables:  
Courses (has\_many) -\> CourseModules (has\_and\_belongs\_to\_many) -\>  
CourseModulesLectures (has\_and\_belongs\_to\_many) -\>Lectures.

I’d like to get a table with all courses, modules and lectures, which  
works quite fine:

\<% unless @course.course\_modules.empty? %\>  
\<% @course.course\_modules.each do |m| %\>  
\<%=h m.semester %\>  
\<%=h m.title %\>  
\<% unless m.lectures.empty? %\>  
\<% m.lectures.each do |lecture| %\>  
\<%= link\_to lecture.title, lecture %\>   
\<% end %\>  
\<% end %\>  
\<% end %\>  
\<% end %\>  
(stripped unnecessary lines)

The problem is, that ‘lecture’ in the marked line refers to the id of  
the habtm-table ‘CourseModulesLectures’, and not to the correct id of  
the lecture. How can I fix that?

Any ideas?

Thanks a lot!

---

<div class="post-metadata">

**Author:** ![jdunneuk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/35a633/32.png) [@jdunneuk](https://www.ruby-forum.com/u/jdunneuk)\
**Post date:** [May 22, 2009, 10:53pm UTC](https://www.ruby-forum.com/t/nested-habtm-in-views/168552/2 "2009-05-22T22:53:30Z")

</div>

Maybe:

\<%= link\_to lecture.title, lecture.lecture\_id %\>

?

---

<div class="post-metadata">

**Author:** ![jdunneuk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/35a633/32.png) [@jdunneuk](https://www.ruby-forum.com/u/jdunneuk)\
**Post date:** [May 23, 2009, 8:26am UTC](https://www.ruby-forum.com/t/nested-habtm-in-views/168552/3 "2009-05-23T08:26:00Z")

</div>

Then the link is set to the courses-controller. It works with something  
like link\_to xxx, lectures\_path(@id, :id =\> lecture.lecture\_id) but  
that’s not good rails in my eyes. Is there any solution to this?

---

<div class="post-metadata">

**Author:** ![jdunneuk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/35a633/32.png) [@jdunneuk](https://www.ruby-forum.com/u/jdunneuk)\
**Post date:** [May 25, 2009, 9:02am UTC](https://www.ruby-forum.com/t/nested-habtm-in-views/168552/4 "2009-05-25T09:02:08Z")

</div>

Any ideas? Is there any mistake in my design? Should I use has\_many  
:through?
