前提・実現したいこと
トップページにいる状態でlayouts/application.erbのフャイルでimage_tagの画像をクリックして詳細ページに飛ぶリンクを指定し詳細ページに遷移したいんですがクリックするとエラーが出てしまう。
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
ActionController::UrlGenerationError in Prototypes#index Showing /Users/kondahitoshi/projects/protospace-32880/app/views/layouts/application.html.erb where line #18 raised: No route matches {:action=>"show", :controller=>"prototypes", :id=>""}, missing required keys: [:id] Extracted source (around line #18): 16 17 18 19 20 21 <div class="nav"> <div class="nav__left"> <%= link_to image_tag("logo.png", class: :logo), prototype_path(@prototype.ids), method: :get %> </div> <% if user_signed_in? %> <div class="nav__right"> Rails.root: /Users/kondahitoshi/projects/protospace-32880 Application Trace | Framework Trace | Full Trace app/views/layouts/application.html.erb:18 Request Parameters: {"_method"=>"get", "authenticity_token"=>"b+277aYBE+erokLY9tKjp1dRPjc69pqGj7AHHI4wq6ICSzs0tN5U3JodhxuJbEL8SqgOOpoWSpUlFtoAk6VpZg=="} Toggle session dump Toggle env dump Response Headers: None x >>
該当のソースコード
<body> <header class="header"> <div class="inner"> <div class="nav"> <div class="nav__left"> <%= link_to image_tag("logo.png", class: :logo), prototype_path(@prototype.ids), method: :get %> </div> <% if user_signed_in? %> <div class="nav__right"> <%= link_to "ログアウト", destroy_user_session_path, method: :delete, class: :nav__logout %> <%= link_to "New Proto", new_prototype_path, class: :nav__btn %> </div> <% else %> <div class="nav__right"> <%= link_to "ログイン", new_user_session_path, class: :nav__btn %> <%= link_to "新規登録", new_user_registration_path, class: :nav__btn %> </div> <% end %> </div> </div> </header> <%= yield %> <footer class="footer"> <p class="copyright">Copyright © PROTO SPACE All rights reserved.</p> </footer> </body> </html> コントローラーはこのようなかんじです。 class PrototypesController < ApplicationController def index @prototype = Prototype.all end def new @prototype = Prototype.new end def create prototype = Prototype.new(tweet_params) if prototype.save redirect_to root_path else render :new end end def show @prototype = Prototype.find(params[:id]) end def edit @prototype = Prototype.find(params[:id]) end def update prototype = Prototype.find(params[:id]) if prototype.update(tweet_params) redirect_to prototype_path(prototype.id) else render :edit end end
試したこと
パスの引数が間違っているとおもうのですが、どのように記述したらいいか困っています。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
>フャイル
細かくて申し訳ない。「ファイル」では。
回答1件
あなたの回答
tips
プレビュー