# Validtion for non active record classes

**URL:** <https://www.ruby-forum.com/t/validtion-for-non-active-record-classes/130067>\
**Category:** Rails\
**Created:** [February 25, 2008, 5:23am UTC](https://www.ruby-forum.com/t/validtion-for-non-active-record-classes/130067 "2008-02-25T05:23:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![sijo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/da6949/32.png) [@sijo](https://www.ruby-forum.com/u/sijo)\
**Post date:** [February 25, 2008, 5:23am UTC](https://www.ruby-forum.com/t/validtion-for-non-active-record-classes/130067/1 "2008-02-25T05:23:07Z")

</div>

Hi

```
  Can I use the active record validation for non active record

```

classes.  
I have a class

class ServiceDeskResolutionEffort  
attr\_reader :days  
attr\_reader :hours  
attr\_reader :minutes

def initialize(data)  
@passed\_effort= data.split(’:’).collect! {|n| n}  
@days = @passed\_effort[0]  
@hours = @passed\_effort[1]  
@minutes = @passed\_effort[2]  
end

end

In the view

In controller  
#for exampleday:hour:min  
@sd\_resol = ServiceDeskResolutionEffort.new(“1:22:10”)

Here HOW CAN I IMPLEMENT VALIDATION THAT HOUR NOT GREATER THAN 23 AND  
MINUTE NOT GREATER HAN 59 AND ALSO CHECK NON NUMERIC CHARACTERS NOT TO  
BE ENTERED ALL THESE DAY:HOUR:MINUTE

Sijo

| Day: | \<%= text\_field :sd\_resol, "days", "size" =\> 2 %\> | Hr: | \<%= text\_field :sd\_resol, "hours", "size" =\> 2 %\> | Min: | \<%= text\_field :sd\_resol, "minutes", "size" =\> 2 %\> |

---

<div class="post-metadata">

**Author:** ![sijo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/da6949/32.png) [@sijo](https://www.ruby-forum.com/u/sijo)\
**Post date:** [February 25, 2008, 9:48am UTC](https://www.ruby-forum.com/t/validtion-for-non-active-record-classes/130067/2 "2008-02-25T09:48:50Z")

</div>

Sorry sir A change is there i need the vallidation when i save …My  
controller as

def sd\_resolution\_save  
@sd\_effort=params[:sd\_resol][:days]+’:’+params[:sd\_resol][:hours]+’:’+params[:sd\_resol][:minutes]  
@sd\_resolution\_id=params[:sd\_resolution\_id]  
if @sd\_resolution\_id==nil  
@service\_desk\_resolution=ServiceDeskResolution.new(params[:sd\_resolution])  
@service\_desk\_resolution.effort=@sd\_effort  
@service\_desk\_resolution.save  
else  
@sd\_ticket\_resolution=ServiceDeskResolution.find @sd\_resolution\_id  
@sd\_ticket\_resolution.update\_attribute(:effort,@sd\_effort)  
@update\_sd\_ticket\_resolution=@sd\_ticket\_resolution.update\_attributes(params[:sd\_resolution])  
end  
redirect\_to :action =\> ‘show\_details’, :id =\> params[:id]  
end

HERE BEFORE SAVING @service\_desk\_resolution.effort I NEED  
VALIDATION…ALL THE OTHER SAME AS MY PROBLEM…AND PLEASE TELL ME HOW TO  
CAPTURE THAT ERROR(IF EXISTS ALSO…Here ServiceDeskResolution is an  
active record class

Sijo

---

<div class="post-metadata">

**Author:** ![sijo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/da6949/32.png) [@sijo](https://www.ruby-forum.com/u/sijo)\
**Post date:** [February 25, 2008, 6:30am UTC](https://www.ruby-forum.com/t/validtion-for-non-active-record-classes/130067/3 "2008-02-25T06:30:06Z")

</div>

Hey,  
Please find the code as follows.

class ServiceDeskResolutionEffort  
attr\_reader :seconds  
attr\_reader :hours  
attr\_reader :minutes

# def initialize(data) begin @passed\_effort= data.split(‘:’).collect! {|n| n} hours = @passed\_effort[0] minutes = @passed\_effort[1] seconds = @passed\_effort[2] if /^(\d)(\d?)$/.match(hours) == nil || /^(\d)(\d)$/.match(minutes)

nil || /^(\d)(\d)$/.match(seconds) == nil  
raise “Please enter the numeric value in time.”  
elsif hours.to\_i \> 23 || minutes.to\_i \> 59 || seconds.to\_i \> 59  
raise “Please enter the right rage of values.”  
else  
@hours = hours  
@minutes = minutes  
@seconds = seconds  
end  
rescue  
puts $!  
end  
end

end

ServiceDeskResolutionEffort.new(“1:22:10”)

On Mon, Feb 25, 2008 at 9:53 AM, Sijo Kg  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> attr\_reader :minutes  
> In the view  
> #for exampleday:hour:min
> 
> >

–  
Thanks & Regards,  
Pavan A.

NOTICE : This transmission contains information that may be confidential  
and  
that may also be privileged. Unless you are the intended recipient of  
the  
message or authorized to receive it for the intended recipient, you may  
not  
copy, forward, or otherwise use it, or disclose it or its contents to  
anyone  
else. If you have received this transmission in error please notify us  
immediately and delete it from your system.
