【发布时间】:2017-01-03 16:07:01
【问题描述】:
所以我想创建一个自定义参数哈希,但我不知道该怎么做。我创建了一个红宝石哈希(有点)。我没有其他想法
$("#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
【问题讨论】:
-
在您的 ruby 控制器中,您期望的 params 对象的结构是什么?我可以告诉你,你目前的方法行不通。如果在请求的 url 中找到字符串
{:entry_key => "<id>", :up => "<id>"},Ruby 不仅会将其评估为哈希值。在参数中传递值有一种特殊的语法:http://localhost:9292/route?key=val&other_key=otherval -
但是结构localhost:9292/route?key=val&other_key=otherval不是只适用于get请求吗?
-
刚刚把我的控制器放在上面