ja hallo erstmal,..

ich stehe hier mal wieder vor einem kleinen Anfängerproblem:
In der Anwendung, an der ich arbeite sollen Datumsfelder im europäischen statt 
im amerikanischen Format eingegeben werden.
Dazu wollte ich gerne über einen kleinen Codegenerator virtuelle Attribute 
einbauen - der dann aus dem Model aufzurufen wäre. (Analog zu attr_accessor)
Der Generator (s.u.) an sich scheint ok und funktioniert ganz passabel (nur 
der regexp bock noch ein wenig)
Leider gelingt es mir nich so ganz, dies auch einzubinden.
Mein Ansatz war, die Methode euro_date einfach in den Helper eines Models zu 
kopieren, indem ich die Methode anwenden wollte.
Dies warf jedoch einen
undefined method `euro_date' for Event:Class zurück, wenn ich versuche 
euro_date analog zu attr_accessor aufzurufen.
Woran könnte dies liegen?

Danke,
Keep smiling
yanosz

class Test
        def euro_date(symbol)
                self.class.send(:attr_accessor, "#{symbol}_euro" )
                self.class.send(:define_method,"#{symbol}_euro=") do  |value|
                        m = /(\d?\d)\.(\d?\d)\.(\d\d\d\d)/.match value
                        day = m[1]
                        month = m[2]
                        month = "0" + month.to_i if m[2].to_i < 10
                        day = "0" + day.to_i if m[1].to_i < 10
                        year = m[3]
                puts "Setze Variablen: @#{symbol}", "#{year}-#{month}-#{day} 
und: @#{symbol}_euro, #{day}.#{month}.#{year}"
                instance_variable_set("@#{symbol}", "#{year}-#{month}-#{day}")
                
instance_variable_set( "@#{symbol}_euro", "#{day}.#{month}.#{year}")

                end
        end

end
t = Test.new
t.euro_date "some"
t.some_euro = "11.10.1912"
puts "Teste..."
puts t.some_euro
puts t.some
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an