If you need to notify the user of error, the best way is using flash
(in the controller). For instance, in the rescue part of that last
function do something like this:
rescue Exception => e
flash[:error] = e.to_s
redirect :controller => ... , :action => ...
end
And in the view of the page you are redirecting to, make sure you have
a reserved space to show flash messages like so:
<p class=''error''><%= flash[:error] -%></p>
Hope it was of help.
On Sep 25, 9:54 am, Sijo Kg
<rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org>
wrote:> Hi
> In the controller I have the function
>
> def convert_sd_ticket_to_incident
> ServiceDeskTicket.close_ticket(sd_id,created_by_id,modified_by_id)
>
Incident.convert_sd_ticket_to_incident(sd_id,created_by_id,modified_by_id)
> end
>
> Now in the ServiceDeskTicket model
> def self.close_ticket(sd_id,created_by,modified_by)
> begin
> ActiveRecord::Base.transaction do
> sd_ticket=self.find(sd_id)
>
sd_ticket.service_desk_status_histories.add_status_histories_on_convert_to_incident(sd_ticket.id,sd_ticket.service_desk_status_id,created_by,modified_by)
> sd_ticket.update_attributes!(:service_desk_status_id => 7 )
> code continues
> end
> rescue Exception => e:
> puts ''error is ''+e.to_s
> end
> end
>
> Now my problem is this ServiceDeskTicket has a validation
> validates_presence_of :description
> It is only implemented now and there are some records in the db
> which have no description..So suppose if I tries to convert any such
> record to an incident what happens is the above code in the model
> ServiceDeskTicket rollsback since it gets exception that description
> empty...But what happens now is in the controller code above the rest ie
> Incident.convert_sd_ticket_to_incident(sd_id,created_by_id,modified_by_id)
> which is executed (this code converts the ticket to incident)
> The solution which i am searching is how can I handle (get) the
> above exception that is happening in the model in the controller and
> redirect to the same page saying that "Please give a description
first"
> I know I can restrict the Incident being added to check whether
> the return value of
> ServiceDeskTicket.close_ticket(sd_id,created_by_id,modified_by_id) is
> true
> But how can I handle this.Please help
>
> Sijo
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---