die Klasse:
class DenLangeKamp < ActiveRecord::Base
belongs_to :liga, :class_name => "DenLangeLiga"
DAYS = { "Man" => 1, "Tir" => 2, "Ons" => 3, "Tor" => 4, "Fre" => 5, "Lør" => 6, "Søn" => 7 }
def dag
DAYS.invert[reader_attribute(:dag)]
end
def dag=(dag)
write_attribute(:dag, DAYS[dag])
end
end
und dann sehen das Formular folgendermaßen aus:
.........
<% liga_form.fields_for :kampe do |kamp_form| %>
<tr>
<td><%= kamp_form.text_field :dag %></td>
.........
ich bin mit dem Tag als Zahl in der DB zu speichern, so dass ich von Tag zu Tag sortieren. "dag" ist "Tag" in Englisch.
Wenn ich sage "DenLangeKamp.first.dag" bekomme ich die richtige Antwort (wie "Man", "Tir", etc) Aber im Formular bekomme ich stattdessen die Nummer! Es scheint also nicht so zu sein, dass es die Getter-Methode korrekt "überschreibt".
Nein. Ich meinte "Model.first.dag". Es ist eine Instanzmethode. Ich möchte ein überschreiben für f.text_field: dag und wenn ich antworte_to: xml – Alexander