所以我想创建一个自定义params哈希,但我不知道该怎么做。我给了一个红宝石哈希(有点)。我没有其他想法
$("#bt-dw , #bt-up").click(function (event) {
event.preventDefault();
var id = $(this).parent().attr("value");
var up = $(this).attr("value");
$.ajax({
type: "POST",
url: "/vote",
data: "{:entry_id => '" + id + "',:up => '" + up + "'}",
success: function () {
console.log("post successful");
},
error: function () {
console.log("post unsuccessful");
}
});
})
后置控制器
post '/vote' do
@entry = Entry.get!(params[:entry_id]) rescue halt(404)
@entry.vote(request.ip, params[:up] != 'false')
end
答案 0 :(得分:1)
因此,从您的评论中看起来您只是创建一个单级params
哈希。
如果您想将数组或散列作为参数值发送,那将会更复杂一些。
有两种方法可以解决这个问题。
选项1:在ajax请求中将此值用于data
data: { entry_id: id, up: up }
选项2:在网址中包含相同的信息,而不是data
:
url: `/vote?entry_id=${id}&up=${up}`
请注意,我在这里使用ES6模板字符串;这相当于:
url: ( "/vote?entry_id=" + id + "&up=" + up )