diff --git a/app/controllers/pizzas_controller.rb b/app/controllers/pizzas_controller.rb new file mode 100644 index 0000000..636877b --- /dev/null +++ b/app/controllers/pizzas_controller.rb @@ -0,0 +1,29 @@ +class PizzasController < ApplicationController + def show + @pizza = Pizza.find(params[:id]) + @pizzeria = @pizza.pizzeria + end + + def new + @pizzeria = Pizzeria.find(params[:pizzeria_id]) + @pizza = @pizzeria.pizzas.build + end + + def create + @pizza = Pizza.new(pizza_params) + @pizzeria = @pizza.pizzeria + + if @pizza.save + redirect_to pizzeria_pizza_path(@pizza.pizzeria, @pizza) + else + flash.now.alert = @pizza.errors.full_messages.to_sentence + render :new + end + end + + private + + def pizza_params + params.require(:pizza).permit(:pizzeria_id, :name, :description) + end +end diff --git a/app/controllers/pizzerias_controller.rb b/app/controllers/pizzerias_controller.rb index e302c21..01fa03b 100644 --- a/app/controllers/pizzerias_controller.rb +++ b/app/controllers/pizzerias_controller.rb @@ -5,7 +5,13 @@ def new def create @pizzeria = Pizzeria.create(pizzeria_params) - redirect_to @pizzeria + + if @pizzeria.save + redirect_to @pizzeria + else + flash.now.alert = @pizzeria.errors.full_messages.to_sentence + render :new + end end def show @@ -17,7 +23,8 @@ def index end private + def pizzeria_params - params.require(:pizzeria).permit(:name,:address) + params.require(:pizzeria).permit(:name, :address) end end diff --git a/app/models/pizza.rb b/app/models/pizza.rb new file mode 100644 index 0000000..1aab51e --- /dev/null +++ b/app/models/pizza.rb @@ -0,0 +1,5 @@ +class Pizza < ApplicationRecord + belongs_to :pizzeria + + validates :name, :description, presence: true +end diff --git a/app/models/pizzeria.rb b/app/models/pizzeria.rb index cbedbf7..5fa5cc1 100644 --- a/app/models/pizzeria.rb +++ b/app/models/pizzeria.rb @@ -1,3 +1,5 @@ class Pizzeria < ApplicationRecord - + has_many :pizzas + + validates :name, :address, uniqueness: true end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index be83826..775457e 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -12,6 +12,11 @@
<%= image_tag "prisoners_pizza.png", class: "pizza_logo"%>