rails服务器说
Started POST "/user/1/follow"
ActionController::RoutingError (No route matches [POST] "/user/1/follow"):
但是使用rake routes
Prefix Verb URI Pattern Controller#Action
followers_user GET /users/:id/followers(.:format) users#followers
followings_user GET /users/:id/followings(.:format) users#followings
follow_user POST /users/:id/follow(.:format) users#follow
基于上面的信息,我不知道为什么路由存在可以被认为是没有路由匹配(RoutingError)。似乎路线确实存在。
以下是可能与此问题相关的其他信息。我使用jquery通过
触发路由 $.ajax({
url: '/user/'+userId+'/follow',
type: 'POST',
});
用户#follow定义为
def follow
if current_user?(@user)
flash[:error] = "You cannot follow yourself"
elsif current_user.following?(@user)
flash[:error] = "You already follow #{@user.name}"
end
if request.xhr?
render status: current_user.follow(@user) ? 200 : 400, nothing: true
end
end
答案 0 :(得分:1)
您已将路线定义为
follow_user POST /users/:id/follow(.:format) users#follow
但是在jQuery代码段中,您使用的是/user/...
而不是/users/...
答案 1 :(得分:0)
路由的路径在jquery帖子中是不同的,正确的路由'users/1/follow'
,我在工作中使用的超级提示,使用提供路由路径的gem js-routes在JavaScripts中访问。
希望这会有所帮助:)