From: Josh Cheek Date: 2010-10-13T02:19:28+09:00 Subject: Re: if the variable is set. --001485f5adf8c5855804926ead7b Content-Type: text/plain; charset=ISO-8859-1 On Tue, Oct 12, 2010 at 11:57 AM, Leonel *.* wrote: > 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/. > > Hi, Leonel, this forum is for Ruby, the programming language. It looks like your question is about Rails, the web framework. Since you posted from ruby-forum, you should be able to the ruby on rails forum by selecting the next forum down on the main list. You'll want to repost your question there. --001485f5adf8c5855804926ead7b--