Nadpisanie setter inna metodą

Hej, chciałbym się zapytać czy da się napisać setter wykorzystując inna metodę, który wylicza wartość, poniżej przykład:

[code]def day_off=(time_off_in_days)
self.day_off = time_off_in_days
end

def time_off_in_days
@day_off = (self.date_to - self.date_from).to_i
end[/code]
Dziękuje za pomoc.

Po pierwsze: parametr time_off_in_days przesłoni metodę o tej samej nazwie. Po drugie:

self.day_off = time_off_in_days

powyśze spowoduje zapętlenie.

Być może chodzi ci o coś takiego:

def set_day_off self.day_off = time_off_in_days # wywołanie metody end
Być może o to (chociaż to normalne działanie settera):

def day_off=(time_off_in_days) write_attribute(:day_off, time_off_in_days) # zapisanie wartości parametru end
Lub o coś pomiędzy…

Dzięki za pomoc, zainspirowałeś mnie :wink:
Dopiero po użyciu

before_save :set_day_off

zadziałało.

Zrobiłem to w ten sposób:

[code]before_save :set_day_off

def set_day_off
write_attribute(:day_off, time_off_in_days)
end

def get_day_off
day_off
end

def time_off_in_days
(self.date_to - self.date_from).to_i
end[/code]