# Errors.add don't work

**URL:** <https://www.ruby-forum.com/t/errors-add-dont-work/171976>\
**Category:** Rails\
**Created:** [July 12, 2009, 8:58pm UTC](https://www.ruby-forum.com/t/errors-add-dont-work/171976 "2009-07-12T20:58:06Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pink-ink](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/9dc877/32.png) [@pink-ink](https://www.ruby-forum.com/u/pink-ink)\
**Post date:** [July 12, 2009, 8:58pm UTC](https://www.ruby-forum.com/t/errors-add-dont-work/171976/1 "2009-07-12T20:58:06Z")

</div>

Hi RoR Comnunity!

I made two virtual attributes to enter date into a text\_field.

Here are the tbl\_bank.entries:

# date text\_field gueltig\_ab

def gueltig\_ab\_string  
if gueltig\_ab  
gueltig\_ab.strftime(’%d.%m.%Y’)  
end  
end

def gueltig\_ab\_string=(gueltig\_ab\_str)  
if gueltig\_ab\_str != ‘’  
self.gueltig\_ab = Date.strptime(gueltig\_ab\_str, ‘%d.%m.%Y’)  
else  
self.gueltig\_ab = gueltig\_ab\_str  
end

```
rescue ArgumentError
  @gueltig_ab_invalid = true

```

end

def validate  
errors.add(:gueltig\_ab, “Datumsformat muss TT.MM.JJJJ sein”) if  
@gueltig\_ab\_invalid  
end

# date text\_field gueltig\_bis

def gueltig\_bis\_string  
if gueltig\_bis  
gueltig\_bis.strftime(’%d.%m.%Y’)  
end  
end

def gueltig\_bis\_string=(gueltig\_bis\_str)  
if gueltig\_bis\_str != ‘’  
self.gueltig\_bis = Date.strptime(gueltig\_bis\_str, ‘%d.%m.%Y’)  
else  
self.gueltig\_bis = gueltig\_bis\_str  
end

rescue ArgumentError  
@gueltig\_bis\_invalid = true  
end

def validate  
errors.add(:gueltig\_bis, “Datumsformat muss TT.MM.JJJJ sein”) if  
@gueltig\_bis\_invalid  
end

The Problem is, that the second errors:add(:gueltig\_bis) works but the  
first errors.add(:gueltig\_ab) don’t work.

Do somebody knows why?

Thanks ahead for every proposal!

Regs,

Hermann

---

<div class="post-metadata">

**Author:** ![pink-ink](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/9dc877/32.png) [@pink-ink](https://www.ruby-forum.com/u/pink-ink)\
**Post date:** [July 13, 2009, 9:24pm UTC](https://www.ruby-forum.com/t/errors-add-dont-work/171976/2 "2009-07-13T21:24:00Z")

</div>

I found a solution.

My fault was, that there where two validations with the same name --\>  
“def validate”.

In found in the rails api the solution:

I have only to rename the validation blocks an then trigger the  
validations with

" validate :block\_name"

Here are my new tbl\_banks.rb entries:

validate :valid\_gueltig\_ab  
validate :valid\_gueltig\_bis

# Date as textfield with virtual attributes

# date text\_field gueltig\_ab

def gueltig\_ab\_string  
if gueltig\_ab  
gueltig\_ab.strftime(’%d.%m.%Y’)  
end  
end

def gueltig\_ab\_string=(gueltig\_ab\_str)  
if gueltig\_ab\_str != ‘’  
self.gueltig\_ab = Date.strptime(gueltig\_ab\_str, ‘%d.%m.%Y’)  
else  
self.gueltig\_ab = gueltig\_ab\_str  
end

```
rescue ArgumentError
  @gueltig_ab_invalid = true

```

end

def valid\_gueltig\_ab  
errors.add(:gueltig\_ab, “Datumsformat muss TT.MM.JJJJ sein”) if  
@gueltig\_ab\_invalid  
end

# date text\_field gueltig\_bis

def gueltig\_bis\_string  
if gueltig\_bis  
gueltig\_bis.strftime(’%d.%m.%Y’)  
end  
end

def gueltig\_bis\_string=(gueltig\_bis\_str)  
if gueltig\_bis\_str != ‘’  
self.gueltig\_bis = Date.strptime(gueltig\_bis\_str, ‘%d.%m.%Y’)  
else  
self.gueltig\_bis = gueltig\_bis\_str  
end

rescue ArgumentError  
@gueltig\_bis\_invalid = true  
end

def valid\_gueltig\_bis  
errors.add(:gueltig\_bis, “Datumsformat muss TT.MM.JJJJ sein”) if  
@gueltig\_bis\_invalid  
end

end
