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 -- Posted via http://www.ruby-forum.com/.
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 -- Posted via http://www.ruby-forum.com/.