Итак, я работаю над проектом, в котором есть задачи, которые составляют охоту за мусором. Поэтому, когда пользователь нажимает на конкретную охоту, я хотел бы, чтобы файл show.html.erb отображал охоту, а также задачи, связанные с этой охотой. Обе модели (Hunt.rb и Task.rb) имеют отношения has_and_belongs_to_many друг с другом. Мой контроллер изначально имел этот код, но он показывал все задачи в базе данных, а не только задачи, связанные с конкретной охотой.
def show
@hunt = Hunt.find(params[:id])
@title = @hunt.name
@tasks = Task.paginate(:page => params[:page])
end
Итак, я попробовал это.
def show
@hunt = Hunt.find(params[:id])
@title = @hunt.name
@tasks = @hunt.tasks.paginate(:page => params[:page])
end
Но затем выдает эту ошибку:
ActiveRecord::StatementInvalid in Hunts#show
Showing /****/views/hunts/show.html.erb where line #10 raised:
Mysql2::Error: Table '***_development.hunts_tasks' doesn't exist: SELECT `tasks`.* FROM `tasks` INNER JOIN `hunts_tasks` ON `tasks`.`id` = `hunts_tasks`.`task_id` WHERE `hunts_tasks`.`hunt_id` = 100 LIMIT 30 OFFSET 0
Вот show.html.erb:
<h1>Show Hunt</h1>
<table>
<tr>
<td class="main">
<h1>
<%= @hunt.name %>
</h1>
<ul>
<% @tasks.each do |task| %>
<%= render task %>
<% end %>
</ul>
</td>
</tr>
</table>
Есть идеи, что я облажался?