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.
Ze względu na powiązanie, które występuje pomiędzy tymi modelami
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.