Мне интересно, как правильно сделать ассоциацию в Rails. Сначала я создаю модель города и организацию. Теперь я хочу, чтобы у организации был город... это делается путем добавления ассоциаций has_many
и has_one
. После этого я запускаю rake db:migrate
. Но почему-то не создает поле city
или city_id
в моей модели базы данных. Должен ли я делать это сам? Разве рельсы не должны теперь создавать ограничение внешнего ключа в базе данных?
Чтобы увидеть, сработало ли это, я использую rails c
и набираю Organisation
, ответ следующий:
=> Organisation(id: integer, name: string, description: string, url: string, created_at: datetime, updated_at: datetime)
Извините за глупый вопрос... Я новичок в Rails и все еще очень незнакомо.
Спасибо!
Город:
class City < ActiveRecord::Base
has_many :organisations
end
Организация:
class Organisation < ActiveRecord::Base
has_one :city
end
Создать город:
class CreateCities < ActiveRecord::Migration
def change
create_table :cities do |t|
t.string :name
t.string :country
t.timestamps
end
end
end
Создать организацию:
class CreateOrganisations < ActiveRecord::Migration
def change
create_table :organisations do |t|
t.string :name
t.string :description
t.string :url
t.timestamps
end
end
end