ajaxを使用してgetリクエストでデータを送信しようとしていますが、paramが送信されていないようです。私はdbからランダムな項目を示すページを持っています。あなたはnavbarのリンクからこのページに行きます。このページに移動すると、現在のアイテムをスキップして別のランダムなアイテムを見つけることができるリンクがあり、次のアイテムがユーザーが見ていたものでないことを確認します。Rails - なぜajaxがGETリクエストにparamsを送信しないのですか?
routes.rbを
get 'pending', to: 'items#pending'
図
<%= link_to 'Skip', '', class: "btn btn-default btn-xs",
id: "skip-btn",
:'data-item-id' => @pending_item.id %>
コントローラ
def pending
@previous_pending_item_id = params[:id] || 0
@pending_items = Item.pending.where("items.id != ?", @previous_pending_item_id)
@pending_item = @pending_items.offset(rand @pending_items.count).first
respond_to do |format|
format.js
format.html
end
end
私はnavbarリンクのアクションとページのリンクを使用しているので、htmlとjsの両方に応答しました。ページ上のリンクはスキップボタンで、別のランダムな項目が表示されます。
sitewide.js.erb
$('#skip-btn').on('click', function() {
$.ajax({
data: {id: $(this).data("item-id")},
url: "/pending"
});
});
私は、サーバーのログに見るとStarted GET "/pending"...
氏は述べているが、送信されているのparamの一切の言及がありません。私は何が欠けていますか?
なぜ私はこのためにajaxを使用しているのですか?なぜなら、私はurlにparamを表示したくないからです。
説明のために、このページにアクセスするときにurlが必要です。このページには、uramsで識別されたparamsまたはadditional:idが常に/保留中である必要があります。このページには常にdbというランダムなレコードが表示されます。私がパラメを送る必要がある唯一の理由は、ランダムであっても連続して記録が繰り返されないようにすることです。
ネットワークリクエストにIDが表示されていますか? – epascarello
@epascarelloどこでこれを探すのですか?私はクロムブラウザを使用しています – user4584963
送信するものがあることを確認するためにconsole.log($(this).data( "item-id")を追加してください) –