From f9b4ee3a477c89fb16a66ba876362f9da971cc27 Mon Sep 17 00:00:00 2001 From: whw-baird Date: Mon, 9 May 2022 22:24:26 +0000 Subject: [PATCH 1/2] updated models --- app/models/actor.rb | 1 + app/models/director.rb | 1 + app/models/movie.rb | 1 + 3 files changed, 3 insertions(+) diff --git a/app/models/actor.rb b/app/models/actor.rb index c2d1e15..c7318c4 100644 --- a/app/models/actor.rb +++ b/app/models/actor.rb @@ -1,2 +1,3 @@ class Actor < ApplicationRecord + has_many :characters, dependent: :destroy end diff --git a/app/models/director.rb b/app/models/director.rb index 36af249..1603458 100644 --- a/app/models/director.rb +++ b/app/models/director.rb @@ -1,2 +1,3 @@ class Director < ApplicationRecord + has_many :movies, dependent: :destroy end diff --git a/app/models/movie.rb b/app/models/movie.rb index d5ba676..694989e 100644 --- a/app/models/movie.rb +++ b/app/models/movie.rb @@ -1,3 +1,4 @@ class Movie < ApplicationRecord belongs_to :director + has_many: :characters, dependent: :destroy end From 0d8e780230d2f229bfb6e0ca05143cc6e64677e0 Mon Sep 17 00:00:00 2001 From: whw-baird Date: Tue, 10 May 2022 17:06:14 +0000 Subject: [PATCH 2/2] struggling with where to put dom id --- app/controllers/directors_controller.rb | 3 +++ app/controllers/movies_controller.rb | 1 + app/models/movie.rb | 2 +- app/views/directors/destroy.js.erb | 1 + app/views/directors/index.html.erb | 2 +- app/views/layouts/application.html.erb | 4 ++++ app/views/movies/index.html.erb | 2 +- db/seeds.rb | 8 ++++++++ 8 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 app/views/directors/destroy.js.erb diff --git a/app/controllers/directors_controller.rb b/app/controllers/directors_controller.rb index 68b50fa..59db5ba 100644 --- a/app/controllers/directors_controller.rb +++ b/app/controllers/directors_controller.rb @@ -53,6 +53,9 @@ def destroy respond_to do |format| format.html { redirect_to directors_url, notice: "Director was successfully destroyed." } format.json { head :no_content } + format.js do + render template "directors/destroy.js.erb" + end end end diff --git a/app/controllers/movies_controller.rb b/app/controllers/movies_controller.rb index 3a4280a..4ea4c8f 100644 --- a/app/controllers/movies_controller.rb +++ b/app/controllers/movies_controller.rb @@ -56,6 +56,7 @@ def destroy end end + private # Use callbacks to share common setup or constraints between actions. def set_movie diff --git a/app/models/movie.rb b/app/models/movie.rb index 694989e..3a4fd91 100644 --- a/app/models/movie.rb +++ b/app/models/movie.rb @@ -1,4 +1,4 @@ class Movie < ApplicationRecord belongs_to :director - has_many: :characters, dependent: :destroy + has_many :characters, dependent: :destroy end diff --git a/app/views/directors/destroy.js.erb b/app/views/directors/destroy.js.erb new file mode 100644 index 0000000..d8992a5 --- /dev/null +++ b/app/views/directors/destroy.js.erb @@ -0,0 +1 @@ +$("#<%= dom_id(@director) %>").remove(); diff --git a/app/views/directors/index.html.erb b/app/views/directors/index.html.erb index 0cccaa4..32cc08a 100644 --- a/app/views/directors/index.html.erb +++ b/app/views/directors/index.html.erb @@ -20,7 +20,7 @@ <%= director.dob %> <%= link_to 'Show', director %> <%= link_to 'Edit', edit_director_path(director) %> - <%= link_to 'Destroy', director, method: :delete, data: { confirm: 'Are you sure?' } %> + <%= link_to 'Destroy', director, method: :delete, remote: true %> <% end %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 2e85407..1290986 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -8,6 +8,10 @@ <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_pack_tag 'application' %> + diff --git a/app/views/movies/index.html.erb b/app/views/movies/index.html.erb index 6d7d3d6..1888612 100644 --- a/app/views/movies/index.html.erb +++ b/app/views/movies/index.html.erb @@ -24,7 +24,7 @@ <%= movie.director_id %> <%= link_to 'Show', movie %> <%= link_to 'Edit', edit_movie_path(movie) %> - <%= link_to 'Destroy', movie, method: :delete, data: { confirm: 'Are you sure?' } %> + <%= link_to 'Destroy', movie, method: :delete, remote: true %> <% end %> diff --git a/db/seeds.rb b/db/seeds.rb index f3a0480..945adc5 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -5,3 +5,11 @@ # # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }]) # Character.create(name: 'Luke', movie: movies.first) + + +# directors = Director.create([{name: 'George Lucas'}, {name: 'Peter Jackson'}]) +movies = Movie.create([{ title: 'Star Wars' }, { title: 'Lord of the Rings' }]) +# actors = Actor.create([{name: 'Mark Hamill'}, {name: 'Elijah Wood'}]) +# characters = Character.create([{name: 'Luke', movie: movies.first, actor: actors.first}, {name: 'Frodo', movie: movies.second, actor: actors.second}]) +# (name: 'Luke', movie: movies.first, actor: actors.first) +# Character.create(name: 'Bilbo', movie: movies.second, actor: actors.second)