私はスカベンジャーハントを構成するタスクがあるプロジェクトに取り組んでいます。したがって、ユーザーが特定のハントをクリックすると、show html.erbファイルにハントだけでなくそのハントに関連するタスクも表示されます。両方のモデル(Hunt.rbとTask.rb)には互いに「has_and_belongs_to_many」の関係があります。私のコントローラはもともとこのコードを持っていましたが、特定のハントに関連するタスクではなく、データベース内のすべてのタスクを示していました。多くの不具合 - * _development.hunts_tasks 'が存在しません:
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
しかし、それはこのエラーをスローします。
<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>
私はめちゃくちゃだものを任意のアイデア:
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ですか?
あなたは 'hunts_tasks'結合テーブルを作成しましたか? –
'hunts_tasks'テーブルを作成しましたか?私は 'has_and_belongs_to_many'はまだ関係を表すテーブルを作成する必要があると信じています。この場合、 'hunt_id'と' task_id'を持つ単なるテーブルです。 [documentation](http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_and_belongs_to_many) –