【问题标题】:DELETE request, react + flux + rails删除请求,反应 + 通量 + 轨道
【发布时间】:2015-12-25 14:47:35
【问题描述】:

我想创建一个简单的 twitter_clone。现在我正在尝试添加一个能够取消关注用户的功能。 到目前为止我做了什么:

用户可以关注其他用户(我通过 Flux 模式做到了) 我是这样做的:

followUser(userId){
    $.post("/followers", {user_id: userId})
    .success(rawFollower => ServerActions.receivedOneFollower(rawFollower))
    .error(error => console.log(error));
},

它向/followers 发送一个 POST 并且 USER STORE 正在获取此数据以更新自身。

现在我正在寻找删除它的方法。我试过这样做:

unfollowUser(userId){
    console.log ("API.unfollowUser");   
    $.delete("/followers", {user_id: userId})
    .success(unfollowUser => ServerActions.removedOneFollower(unfollowUser))
    .error(error => console.log(error));
}

但它不起作用。我收到一个错误:

未捕获的类型错误:$.delete 不是函数

基本上,我尝试从数据库中删除一行,并相应地删除与之连接的 json,然后更新一个 STORE(从我用来确定 React Element 状态的数组中删除这个 json)

这是来自 Rails 追随者控制器的销毁操作:

def destroy
    follower = Follower.find(user_id: params[:user_id],
                            followed_by: current_user.id)
    follower.destroy    
end

有人可以帮我吗?

【问题讨论】:

    标签: ruby-on-rails reactjs-flux


    【解决方案1】:

    如您所见,您遇到的错误是 Javascript 错误,而不是 Rails 错误。

    jQuery 没有 $.delete 方法。相反,您必须使用 $.ajax 并指定 HTTP 方法,如下所示:

    $.ajax({
      url: '/followers',
      method: 'DELETE',
      data: { user_id: userId }
    }).done(unfollowUser => ServerActions.removedOneFollower(unfollowUser))
      .fail(error => console.log(error))
    

    但是,这也可能会失败,因为 jQuery 可能不支持使用 DELETE 请求发送数据,这是有道理的。

    如果您正在使用 Rails 并尝试使用 RESTful,则不应发送这样的 DELETE 请求:

    DELETE /followers
    { user_id: userId }
    

    相反,您应该像这样发送 DELETE 请求:

    DELETE /followers/:user_id
    

    所以要修改代码,变成这样:

    $.ajax({
      url: '/followers/' + userId ,
      method: 'DELETE',
    }).done(unfollowUser => ServerActions.removedOneFollower(unfollowUser))
      .fail(error => console.log(error))
    

    我没有尝试过上面的任何代码,但它应该可以工作 (TM)。

    【讨论】:

      猜你喜欢
      • 2022-08-15
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多