0

私の投票リンクは、リンクが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がないとメーカーが見つからないと表示されるので、まだデバッグ中です。

4

2 に答える 2

0

解決策は非常に簡単でした。最初にレーキルートを実行し、ルートが要求するパラメーターを正しい形式で指定していることを確認してください。

私の場合、パラメータはvote_car_manufacturer _path(@ car.id、id:manufacturer、type: "up")である必要があります。

于 2013-03-02T18:37:42.393 に答える
0

あなたはajax呼び出しについて話しますが、

:remote => true 

ドキュメントで指定されているように、 link_toにはありません: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html

于 2013-02-24T23:45:49.700 に答える