You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.4 KiB

class MoviesController < ApplicationController
before_action :require_admin, except: [:index, :show]
def index
case params[:filter]
when "upcoming"
@movies = Movie.upcoming
when "recent"
@movies = Movie.recent
else
@movies = Movie.released
end
end
def show
@movie = Movie.find(params[:id])
@fans = @movie.fans
@genres = @movie.genres.order(:name)
if current_user
@favorite = current_user.favorites.find_by(movie_id: @movie.id)
end
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
def movie_params
params.require(:movie).permit(:title, :description, :rating, :released_on, :total_gross, :director, :duration, :image_file_name, genre_ids: [])
end
end