Hallo Michael,

ein Klassenmethode in Ruby funktioniert etwas anders als statische
Methoden in Java. Um es kurz zu machen: Die Methode ist auf der Klasse
definiert und kann auch nur auf der Klasse oder auf Subklassen gerufen
werden. Um dein Stückchen Code zum Laufen zu bekommen musst du also in
den Instanz-Methoden den Aufruf

-  self.generate_random_sequence

in

+  self.class.generate_random_sequence

oder

+  ContactData.generate_random_sequence

ändern. Dann sollte alles wie erwartet funktionieren.

Viele Grüße

Gregor

On Sun, Jun 22, 2008 at 17:07, Michael Kastner <[EMAIL PROTECTED]> wrote:
> Hallo,
>
> ich verstehe gerade nicht, warum meine Klassenmethode
> generate_random_seqence nicht funktioniert.
>
> In der Konsole ist alles ok:
>
>>> ContactData.generate_random_sequence
> => [7, 5, 2, 6]
>
> Aber sobald ich die Klassenmethode aus der Instanz aufrufe, erhalte ich eine
> Fehlermeldung:
>
> undefined method `generate_random_sequence' for #<ContactData:0x237e3b0>
>
> app/models/contact_data.rb:35:in `valid_sequence_confirmation?'
> app/models/contact_data.rb:22:in `validate'
> lib/non_record_model.rb:8:in `valid?'
>
>
> Hier der relevante Ausschnitt des Quellcodes:
>
> class ContactData < NonRecordModel::Base
>
>  attr_accessor :sequence
>
>  ...
>
>  def valid_sequence_confirmation?
>    return true if sequence_confirmed?
>    if self.sequence_confirmation.to_s == self.sequence.to_s
>      self.sequence_confirmed = "true"
>      return true
>    end
>    self.sequence = self.generate_random_sequence
>    false
>  end
>
>  ...
>
>  def sequence_confirmed?
>    (self.sequence_confirmed && self.sequence_confirmed.strip.length > 0)
>  end
>
>  ...
>
>  def self.generate_random_sequence
>    [1,2,3,4,5,6,7,8,9].sort_by{rand}[1..4]
>  end
>
> end
>
>
> Wahrscheinlich etwas ziemlich Triviales, das ich übersehen habe. Kann mir
> jemand auf die Sprünge helfen?
>
> Viele Grüße
>
> Michael Kastner
>
> _______________________________________________
> rubyonrails-ug mailing list
> [email protected]
> http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
>
>
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an