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
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