Skip to content

Instantly share code, notes, and snippets.

@emanoelopes
Created October 7, 2016 16:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save emanoelopes/7bf3d5fcbf1a6f1a44d199dcceefa0f9 to your computer and use it in GitHub Desktop.
Save emanoelopes/7bf3d5fcbf1a6f1a44d199dcceefa0f9 to your computer and use it in GitHub Desktop.
class Qualificacao < ActiveRecord::Base
include Wisper::Publisher
after_create :publish_creation_successful
private
def publish_creation_successful
broadcast(:qualificacao_creation_successful, self)
end
# def commit(_attrs = nil)
# assign_attributes(_attrs) if _attrs.present?
# result = save
# if result
# broadcast(:qualificacao_creation_successful, self)
# end
# end
validates_presence_of :nota, message: " - deve ser preenchido"
validates_presence_of :valor_gasto, message: " -deve ser preenchido"
validates_numericality_of :nota, greater_than: 0, less_than: 10, message: " - deve ser número entre 0 e 10"
validates_numericality_of :valor_gasto, greater_than: 0, message: " - deve ser número maior que 0"
belongs_to :cliente
belongs_to :restaurante
validates_presence_of :cliente_id, :restaurante_id
validates_associated :cliente, :restaurante
has_many :comentarios, as: :comentavel
end
class QualificacoesController < ApplicationController
include Wisper::Publisher
before_action :set_qualificacao, only: [:show, :edit, :update, :destroy]
# GET /qualificacoes
# GET /qualificacoes.json
def index
@qualificacoes = Qualificacao.all
end
# GET /qualificacoes/1
# GET /qualificacoes/1.json
def show
end
# GET /qualificacoes/new
def new
preparar_form
@qualificacao = Qualificacao.new
if params[:cliente]
@qualificacao.cliente = Cliente.find(params[:cliente])
end
if params[:restaurante]
@qualificacao.restaurante = Restaurante.find(params[:restaurante])
end
end
# GET /qualificacoes/1/edit
def edit
preparar_form
end
# POST /qualificacoes
# POST /qualificacoes.json
def create
@qualificacao = Qualificacao.new(qualificacao_params)
logger.debug "Nova qualificacao: #{@qualificacao.nota}"
@qualificacao.subscribe(Franquia.new)
@qualificacao.on(:qualificacao_creation_successful) { |qualificacao| redirect_to qualificacao}
respond_to do |format|
if @qualificacao.save
format.html { redirect_to @qualificacao, notice: 'Qualificacao was successfully created.' }
format.json { render :show, status: :created, location: @qualificacao }
publish(:qualificacao_create, @qualificacao)
render_created(@qualificacao)
else
preparar_form
format.html { render :new }
format.json { render json: @qualificacao.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /qualificacoes/1
# PATCH/PUT /qualificacoes/1.json
def update
@qualificacao = Qualificacao.find(params[:id])
respond_to do |format|
if @qualificacao.update_attributes(qualificacao_params)
format.html { redirect_to @qualificacao,
notice: 'Qualificacao was successfully updated.' }
format.json { render :show, status: :ok, location: @qualificacao }
else
preparar_form
format.html { render action: "edit" }
format.json { render json: @qualificacao.errors,
status: :unprocessable_entity }
end
end
end
# DELETE /qualificacoes/1
# DELETE /qualificacoes/1.json
def destroy
@qualificacao.destroy
respond_to do |format|
format.html { redirect_to qualificacoes_url, notice: 'Qualificacao was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_qualificacao
@qualificacao = Qualificacao.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def qualificacao_params
params.require(:qualificacao).permit(:cliente_id, :restaurante_id, :nome, :nota, :valor_gasto)
end
private
def preparar_form
@clientes = Cliente.order :nome
@restaurantes = Restaurante.order :nome
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment