Класс:
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
и тогда форма выглядит так:
.........
<% liga_form.fields_for :kampe do |kamp_form| %>
<tr>
<td><%= kamp_form.text_field :dag %></td>
.........
Я сохраняю день как число в БД, чтобы можно было отсортировать по дням. «dag» - это «день» на английском языке.
Когда я говорю как «DenLangeKamp.first.dag», я получаю правильный возврат (например, «Человек», «Тир» и т. Д.) Но в форме я получаю вместо этого число! Так что не похоже, что он действительно «перезаписывает» метод getter.