【发布时间】:2016-10-19 15:13:06
【问题描述】:
Ajax 请求对我来说仍然很新,但我有一个带有按钮的食谱索引,可让您收藏食谱。
<i class="favorite" data-recipe="<%= recipe.id %>">
...我正在尝试对路由使用 PUT 请求:
favorite_recipe PUT /recipes/:id/favorite(.:format) recipes#favorite
... 使用以下 jQuery 函数:
$(".favorite").click(function(){
$(this).toggleClass("favorited");
var recipe_id = $(this).data("recipe");
// displays properly when I console.log() it
var url_path = '/recipes/' + recipe_id + '/favorite'
$.ajax({
url: url_path,
type: 'PUT'
})
})
但在我的开发者控制台中,我收到 404 错误,并且显示的 url 是 Request URL:http://localhost:3000/recipes 而不是 http://localhost:3000/recipes/:recipe_id/favorite。
我做错了什么?我需要使用 data 参数来提供 id 吗?
【问题讨论】:
-
正如 gil.neo 所说,请确保您拥有 routes.rb 以及通往此收藏夹的路线。此外,我相信您需要在您的食谱控制器中使用类似以下内容的方法:正如 gil.neo 所说,确保您的 routes.rb 具有指向此收藏夹的路由。此外,我相信您需要在食谱控制器中使用类似以下内容的方法:` def favorite @recipe = Recipe.find(params[:id]) @Recipe.increment!(:favourite) end `
标签: javascript jquery ruby-on-rails ajax ruby-on-rails-4