Nested habtm in views


#1

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!


#2

Maybe:

<%= link_to lecture.title, lecture.lecture_id %>

?


#3

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?


#4

Any ideas? Is there any mistake in my design? Should I use has_many
:through?