私の投票リンクは、リンクがajaxパーシャルを介してレンダリングされる場合を除いて、通常は機能します。JavaScriptパーシャルを介してレンダリングすると、Firebugに表示されるルーティングエラーが発生しますが、それ以外の場合はエラーは発生しません。
ファイアバグがないと、新しいメーカーを追加しようとしたときにメーカーが追加されないため、エラーが発生することがわかります。ページを手動で更新すると、リンクと新しいメーカーが存在し、投票が機能します。
したがって、基本的にajaxを使用すると、投票リンクが切断されます。
レーキルート:
vote_car_manufacturer POST /cars/:car_id/manufacturers/:id/vote(.:format) manufacturers#vote
見る:
<%= link_to '+', vote_car_manufacturer _path(car_id: @car.id, manufacturer_id: manufacturer.id, type: "up"), method: "post" %>
ファイアバグ:
No route matches {:action=>"vote", :controller=>"manufacturers", :car_id=>1, :manufacturer_id=>29, :type=>"up"}
ajaxを使用する場合、投票リンクを別の方法で実装する必要がありますか?
アップデート
試行錯誤しながら半ば機能しました。かわった:
<%= link_to '+', vote_car_manufacturer _path(car_id: @car.id, manufacturer_id: manufacturer.id, type: "up"), method: "post" %>
に:
<%= link_to '+', vote_car_manufacturer _path(@car.id, manufacturer.id, "up"), :method => :post %>
IDがないとメーカーが見つからないと表示されるので、まだデバッグ中です。