Complete Lesson 25

main
Simon Quigley 1 year ago
parent 2e4e522c96
commit c3fbb70cff

@ -1,42 +1,42 @@
class MoviesController < ApplicationController
def index
@movies = Movie.released
end
def show
@movie = Movie.find(params[:id])
end
def edit
@movie = Movie.find(params[:id])
end
def update
@movie = Movie.find(params[:id])
if @movie.update(movie_params)
redirect_to @movie, notice: "Movie successfully updated!"
else
render :edit, status: :unprocessable_entity
end
end
def new
@movie = Movie.new
end
def create
@movie = Movie.new(movie_params)
if @movie.save
redirect_to @movie, notice: "Movie successfully created!"
else
render :new, status: :unprocessable_entity
end
end
def destroy
@movie = Movie.find(params[:id])
if @movie.destroy
redirect_to movies_url, status: :see_other, alert: "Movie successfully destroyed!"
end
end
def index
@movies = Movie.released
end
def show
@movie = Movie.find(params[:id])
end
def edit
@movie = Movie.find(params[:id])
end
def update
@movie = Movie.find(params[:id])
if @movie.update(movie_params)
redirect_to @movie, notice: "Movie successfully updated!"
else
render :edit, status: :unprocessable_entity
end
end
def new
@movie = Movie.new
end
def create
@movie = Movie.new(movie_params)
if @movie.save
redirect_to @movie, notice: "Movie successfully created!"
else
render :new, status: :unprocessable_entity
end
end
def destroy
@movie = Movie.find(params[:id])
if @movie.destroy
redirect_to movies_url, status: :see_other, alert: "Movie successfully destroyed!"
end
end
private
private
def movie_params
params.require(:movie).permit(:title, :description, :rating, :released_on, :total_gross, :director, :duration, :image_file_name)
end
def movie_params
params.require(:movie).permit(:title, :description, :rating, :released_on, :total_gross, :director, :duration, :image_file_name)
end
end

@ -1,2 +1,9 @@
module ReviewsHelper
def average_stars(movie)
if movie.average_stars.zero?
content_tag(:strong, "No reviews")
else
pluralize(number_with_precision(movie.average_stars, precision: 1) , "star")
end
end
end

@ -17,4 +17,7 @@ class Movie < ApplicationRecord
def self.released
where("released_on < ?", Time.now).order(released_on: :desc)
end
def average_stars
reviews.average(:stars) || 0.0
end
end

@ -12,6 +12,9 @@
<h3>
<%= total_gross(movie) %>
</h3>
<span class="stars">
<%= average_stars(movie) %>
</span>
<p>
<%= truncate(movie.description, length: 150, separator: ' ') %>
</p>

@ -8,6 +8,7 @@
<%= year_of(@movie) %> &bull; <%= @movie.rating %>
</h2>
<div class="reviews">
<%= average_stars(@movie) %>
<%= link_to pluralize(@movie.reviews.size, "review"), movie_reviews_path(@movie) %>
</div>
<p>

Loading…
Cancel
Save