私は、さまざまなビュー(ゲームやプロモーション)で使用される部分を構築しています。 私はビュー/アプリケーションRails、部分にパス変数を渡す
<%= content_tag :article, class: ['article'] do %>
<a href="#">
<%= image_tag item.thumbnail %>
</a>
<h2><%= item.name %></h2>
<p><%= item.description %></p>
<p>
<%= link_to 'Read more', "#" %>
</p>
<% end %>
で部分的に作成したと私は見(またはプロモーション)ビューのゲームからそれを呼び出す:
<% @games.each do |item| %>
<section>
<%= render 'application/item_synopsis_builder', item: item %>
</section>
<% end %>
それは部分的に移入してレンダリングするために正常に動作しますが、私は部分的にview_pathに渡す方法を躊躇しないので、一時的に#を<%= the_right_path =>に置き換えます。
私が実行しようとしました:
<%= render partial: 'application/item_synopsis_builder', locals: {item: item, path: game_path } %>
しかし、私はちょうど、エラーメッセージが出ます:
No route matches {:action=>"show", :controller=>"games"}
をしかし、私はHREF = "#" で部分的にレンダリングする場合は、それがうまくレンダリングします。
私はhref="<%= "#{item}_path" %>"
で私の運を試しましたが、オブジェクトアイテムのrefを印刷するだけです。
乾杯
game_pathはゲームビュー/コントローラ/私の現在のものから利用できませんか? –
はい、そうです。しかし、 'game_path'は特定のゲームへのパスです(show、update、destroyに使われます)ので、idを取得するにはゲームオブジェクトが必要です。インデックスページにリンクしたい場合は 'games_path'( 's'に気付く)を使います。 – ksol
いいえ私は個々のゲームへのパスをレンダリングしたいですか?私はゲームのリストを作成しており、それぞれのページにリンクする必要があります。 –