はじめに
今日、学習を進めていて、30分ほど解決に時間がかかったものをまとめる。
問題
詳細ページに行きたくても、思い通りのページに飛ばないで、どのリンク画像を触っても、同じ詳細ページに行ってしまう。
解決までの道筋
def show
@prototype = Prototype.find(params[:id])
end
コントローラーのアクションが間違っているのだと思い、何度も見返すが、問題が見当たらない。
Prototypeテーブルからidを探し、それをインスタンス変数に入れる。
次に詳細ページに飛ぶときに触る部分のコードを見ることに。
<%= link_to image_tag(prototype.image), prototype_path(prototype.user.id)%>
はいそう、リンク先のパスが、.user
を入れることによって、prototype
のidを探し出したかったのに、user
テーブルのidを探していた。だから、id=1のユーザーで入っていると、どのリンク画像を触っても、1番の詳細ページにいっていた。prototypeテーブルとuserテーブルがアソシエーションしているから起きたミス。
正しくは↓
<%= link_to image_tag(prototype.image), prototype_path(prototype.id)%>