我想创建一个名为 groups 的表,列出每个组的列表。在每个组的内部,我想列出课程组。小组has_many :courses
和课程belongs_to :group
。我目前的尝试不起作用,我不知道从那里去哪里
courses_controller.rb
def index
@courses = Course.find_by(group: :group_id)
@groups = Group.all
end
index.html.erb
<table>
<thead>
<tr>
<th>Title</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @groups.each do |group| %>
<tr>
<td><%= group.title %></td>
<td><%= link_to 'Show', group %></td>
<td><%= link_to 'Edit', edit_group_path(group) %></td>
<td><%= link_to 'Destroy', group, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<tr>
<td>
<table>
<thead>
<tr>
<th>Title</th>
</tr>
</thead>
<tbody>
<% @courses.each do |course| %>
<tr>
<% if Lesson.exists?(user: current_user, course: course) %>
<td><%= link_to course.title, edit_lesson_path(Lesson.find_by(user: current_user, course: course)) %></td>
<% else %>
<td><%= link_to course.title, new_course_lesson_path(course) %></td>
<% end %>
<% if current_user.master? %>
<td><%= link_to 'Edit', edit_course_path(course) %></td>
<td><%= link_to 'Destroy', course, method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% else %>
<% end %>
</tr>
<% end %>
</tbody>
</table>
<br>
<% if current_user.master? %>
<%= link_to 'New Course', new_course_path %>
<% end %></td>
</tr>
<% end %>
</tbody>
</table>
感谢任何帮助:)
:group_id
是每个已创建课程的组ID,因为小组has_many :courses
课程belongs_to :course
,但这并不重要,因为我只想要桌子,谢谢XP
答案 0 :(得分:0)
正如我在评论中所说,你的意思是什么不起作用?你收到任何错误信息吗?你是如何构建模型的?您是否已创建迁移以向课程添加组ID?你的路线文件是什么样的 - 是否在群组下嵌套?如果您不提供此类信息,则很难提供帮助。
如果您查看日志,您会收到一些消息,这些消息会指示您出现问题。你试过跑吗
Course.find_by(group: :group_id)
在rails控制台中。我怀疑你会发现这条线路造成了问题。注释掉这一行并修改你的erb如下(我没有包括所有的代码,但只是为了给你一个想法)。在表格中使用表也不是一个好主意。
<table>
<thead>
<tr>
<th>Title</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @groups.each do |group| %>
<tr>
<td><%= group.title %></td>
</tr>
<tr>
<td>
<table>
<thead>
<tr>
<th>Title</th>
</tr>
</thead>
<tbody>
<% @group.courses.each do |course| %>
<tr>
<% if Lesson.exists?(user: current_user, course: course) %>
<td><%= link_to course.title, edit_lesson_path(Lesson.find_by(user: current_user, course: course)) %></td>
<% else %>
<td><%= link_to course.title, new_course_lesson_path(course) %></td>
<% end %>