создание выборки для удаления - PullRequest
0 голосов
/ 22 сентября 2019

В настоящее время я создаю приложение для просмотра фильмов, и я не совсем понимаю, как настроить загрузку для отправки запроса на удаление.Мое приложение работает так, что пользователь может создать учетную запись и создавать записи фильмов о своих любимых фильмах, а также просматривать все фильмы, созданные всеми пользователями.Я хочу, чтобы у пользователя была возможность удалять свои собственные записи фильмов, когда они вошли в систему. Я использую реагирование на переднем конце и рельсы на заднем конце

Если я использую эту ссылку ... 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} вбраузер с идентификатором фильма, прикрепленным в конце, и он показал в рельсах, что маршрут не указан, так что я знаю, что мне, вероятно, нужно что-то сделать для маршрутов, но я не уверен, как это сделать ...

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

ресурсов: пользователи делают ресурсы: фильмы заканчиваются

Предоставляет все URL-адреса с созданными для пользователя фильмами.

УДАЛИТЬ / users /: user_id / movies /: id Показать / users /: user_id / movies /: id

0 голосов
/ 23 сентября 2019

Чтобы создать маршрут, вам нужно перейти к файлу 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/

...