0

我目前正在创建一个电影应用程序,我很困惑我应该如何设置我的提取来发出删除请求。我的应用程序的工作方式是用户可以创建一个帐户,并创建他们最喜欢的电影的电影发布,他们能够查看所有用户创建的所有电影。我希望用户能够在登录时删除他们自己的电影帖子。我在前端使用 react 并在后端使用 rails

如果我使用此链接... http://localhost:3000/users/ ${this.state.current_user_id}/movies 当前登录的用户将能够查看他们创建的所有电影。current_user_id 用于当前登录的用户。

 handleMovieDelete = (movie) => {

        if(this.state.current_user_id){       
   fetch(`http://localhost:3000/users/
   ${this.state.current_user_id}/movies/${movie.id}`, {

         method: 'DELETE'
        })
      .then(res => res.json())
.then(() => {
     this.setState({
         movies: this.state.movies.filter(a_movie => movie.id !==     
         a_movie.id)
      })
    })
  } 
 }

我尝试在浏览器中访问http://localhost:3000/users/ ${this.state.current_user_id}/movies/${movie.id} 并在末尾附加了电影 ID,它在 Rails 中显示没有指定路线,所以我知道我可能需要为路线做点什么,但我不知道该怎么做......

4

2 回答 2

0

要创建路线,您应该转到您的routes.rb文件并执行以下操作:

get "users/:current_user_id/movies/:movie_id" => "users/movies#show"

在哪里users/movies引用您将定义动作的电影控制器,show可以是这样的:

def show
   @movie = Movie.find(params[:movie_id])
end

请记住,要使其正常工作,您的目录show.html.erb下应该有一个文件users/movies/

于 2019-09-22T21:32:28.823 回答
0

资源:用户做资源:电影结束

它提供了创建用户特定电影的所有 url。

删除 /users/:user_id/movies/:id 显示 /users/:user_id/movies/:id

于 2019-09-23T07:38:56.500 回答