Javascript 为什么路由存在可以视为没有路由匹配(RoutingError)?
rails服务器说Javascript 为什么路由存在可以视为没有路由匹配(RoutingError)?,javascript,jquery,ruby-on-rails,restful-url,Javascript,Jquery,Ruby On Rails,Restful Url,rails服务器说 Started POST "/user/1/follow" ActionController::RoutingError (No route matches [POST] "/user/1/follow"): 但是使用rake路由 Prefix Verb URI Pattern Controller#Action followers_user GET /users/:id/followers(.:fo
Started POST "/user/1/follow"
ActionController::RoutingError (No route matches [POST] "/user/1/follow"):
但是使用rake路由
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
您已将路线定义为
follow_user POST /users/:id/follow(.:format) users#follow
但是在jQuery代码片段中,您使用的是
/user/..
而不是/users/..
在jQuery帖子中,您的路线的路径是不同的,正确的路线'users/1/follow'
,这是我在工作中使用的一个超级技巧,使用gem,它提供了在JavaScripts中访问的路线路径
希望这有帮助:)