我試圖通過確認對話觸發的Ajax請求中的url傳遞參數。我想在獲得成功請求的情況下在Rails控制器中獲取該參數的值,但我無法做到。無法通過使用Rails的Ajax請求中的url傳遞參數
我到目前爲止已經試過下面的代碼:
這裏我的Ajax請求,我已經在URL中的數據被添加帕拉姆加上其他PARAMS
function continueSave() {
var name = $('#leader_name').val();
var persisted_time = $('#leader_time').val();
$.ajax({
type: "POST",
url: "/leaderboards/1/?test=1",
data: { leader: { name: name, time: time } },
success: success
});
}
此處對話相關JS
function nameAlert() {
return confirm("Name already exists. Would you like to continue?");
};
(function() {
if (nameAlert()) {
continueSave();
}
else {
//something else here
}
})();
雖然請求成功到達控制器,但是params [:test]在控制器中爲零。
我也嘗試過在數據中傳遞測試參數,但它也不工作。
希望得到一些幫助。
相關的控制器動作(leaders_controller.rb)
def create
@leader = Leader.new(leader_params)
@leader.leaderboard_id = @leaderboard.id
@name_repeated = [email protected]_by(name: @leader.name).nil?
@check = params[:test]
if params[:test].nil? && @name_repeated == true
render :template => 'leaders/repeated_name.js.erb'
else
@leader.save
@rank = @leader.rank_in(@leaderboard)
respond_to do |format|
if @leader.save
format.html { redirect_to root_path }
format.js { }
else
end
end
end
end
注: 1.-領導人/ repeated_name.js.erb「包含了Ajax請求的代碼 2:在路線領導資源嵌套在排行榜資源內
嘗試請求頭 - 頭:{ 「接受」: 「應用/ JSON」, 「內容類型」: 「應用/ JSON」 } –
感謝魯本。我剛開始嘗試使用Ajax,因此我恐怕甚至不知道如何去做。如果你有幾分鐘的時間可以提供進一步的指導? – Andrew
您只需要將該屬性添加到您的請求對象中:$ .ajax({type:「POST」, url:「/ leaderboards/1 /?測試= 1「, 標題:{」Accept「:」application/json「,」Content-Type「:」application/json「}, data:{leader:{name:name,time:time}}, 成功:成功 }); –