From: "Leonel *.*" Date: 2010-10-13T01:57:09+09:00 Subject: if the variable is set. How can I create an if statement to check if a variable contains a value? If it does contain a value, I want to send an email. I'm doing the following but it doesn't work... -------------------------------------------------------- EXTRACT -------------------------------------------------------- # send email only if a client email is set if defined?(appointment.client.email) Notifier.appointment_booked(@appointment).deliver end -------------------------------------------------------- -------------------------------------------------------- FULL CONTROLLER -------------------------------------------------------- class AppointmentsController < ApplicationController before_filter :load_clients_and_services, :only => [ :new, :create, :edit ] # GET /appointments # GET /appointments.xml def index @appointments = Appointment.all(:order => 'start', :conditions => [ "start >= ?", Date.today ] ) appointments = Appointment.all(:order => 'start', :conditions => [ "start >= ?", Date.today ] ) appointments.group_by do |appointment| appointment.start.strftime("%Y%m%d") end @past_appointments = Appointment.all(:order => 'start', :conditions => [ "start < ?", Date.today ] ) respond_to do |format| format.html # index.html.erb format.xml { render :xml => @appointments } end end # GET /appointments/1 # GET /appointments/1.xml def show @appointment = Appointment.find(params[:id]) respond_to do |format| format.html # show.html.erb format.xml { render :xml => @appointment } end end # GET /appointments/new # GET /appointments/new.xml def new @appointment = Appointment.new respond_to do |format| format.html # new.html.erb format.xml { render :xml => @appointment } end end # GET /appointments/1/edit def edit @appointment = Appointment.find(params[:id]) end # POST /appointments # POST /appointments.xml def create @appointment = Appointment.new(params[:appointment]) respond_to do |format| if @appointment.save # send email only if a client email is set if defined?(appointment.client.email) Notifier.appointment_booked(@appointment).deliver end format.html { redirect_to(@appointment, :notice => 'Appointment was successfully created.') } format.xml { render :xml => @appointment, :status => :created, :location => @appointment } else format.html { render :action => "new" } format.xml { render :xml => @appointment.errors, :status => :unprocessable_entity } end end end # PUT /appointments/1 # PUT /appointments/1.xml def update @appointment = Appointment.find(params[:id]) respond_to do |format| if @appointment.update_attributes(params[:appointment]) format.html { redirect_to(@appointment, :notice => 'Appointment was successfully updated.') } format.xml { head :ok } else format.html { render :action => "edit" } format.xml { render :xml => @appointment.errors, :status => :unprocessable_entity } end end end # DELETE /appointments/1 # DELETE /appointments/1.xml def destroy @appointment = Appointment.find(params[:id]) @appointment.destroy respond_to do |format| format.html { redirect_to(appointments_url) } format.xml { head :ok } end end private def load_clients_and_services @clients = Client.find(:all) @services = Service.find(:all) end end -- Posted via http://www.ruby-forum.com/.