2013-03-01 8 views
0

У меня есть 1: отношение п (человек в городе)Состав, belongs_to

Модель лицо:

belongs_to :city 
composed_of :city, :mapping => %w(city_name city) 

Модель Город:

has_many :people 

Теперь должно быть возможно установить город: peson.city = "Лондон"? Насколько я понимаю это или какая цель?

http://api.rubyonrails.org/classes/ActiveRecord/Aggregations/ClassMethods.html

В примере они не используют has_many или belongs_to. Зачем?

ответ

0

когда вы делаете

person.city = "London" 

Rails видит это как set city to the string 'London', которая не является правильным. То, что вы хотите сообщить Rails, - set the city to the record in the database with a name of 'London'. Вы делаете это с помощью (в простейших условиях)

london = City.find_by_name 'London' 
person.city = london