Problem z zapisem powiązanego modelu

Mam mały problem z zapisywaniem powiązanego modelu, mianowicie:

[code]class City < ActiveRecord::Base
has_one :marker
end

class Marker < ActiveRecord::Base
belongs_to :city
end

city = City.find(2)
=> #<City id: 2, name: “Warszawa”, created_at: “2008-02-16 22:25:43”, updated_at: “2008-02-16 22:26:53”>
city.marker.latitude = 60.0
=> 60.0
city.save
=> true
city.marker.latitude
=> 60.0
city.reload
=> #<City id: 2, name: “Warszawa”, created_at: “2008-02-16 22:25:43”, updated_at: “2008-02-16 22:28:17”>
city.marker.latitude
=> 50.0[/code]
Z tego co pamiętam, to w Railsach 1.2 bez problemów wszystko się zapisywało. W jaki sposób w Rails 2.0 można uzyskać taką funkcjonalność?

Niestety to rozwiązanie nie działa również w 1.2. Problem polega na tym, że City has_one Marker, a nie City belongs_to Marker.
Proponowane przez Ciebie rozwiązanie działała tylko w drugim przypadku.

Działa tylko w drugim przypadku w Rails 1.2? Przed chwilą spróbowałem zrobić to samo od strony Markera w Railsach 2.0 i rezultat jest taki sam.

nie bardzo rozumiem dlaczego ma to działać?:slight_smile: Operujesz na innym modelu więc wywołaj zapis na nim a nie na city:)

Ze względu na powiązanie, które występuje pomiędzy tymi modelami :stuck_out_tongue:

Przez drugi przypadek rozumiałem sytuację, w której zmieniamy coś w city, do którego mamy dostęp przez marker i zapisujemy marker. Wtedy ta zmiana w city zostanie zapisana w DB.

Z informacji jakie udało mi się wygooglać wynika, że jednak należy dokonać zapisu na markerze (np. przy pomocy callbacków - tak to rozwiązałem).