У меня есть три модели в моем приложении Rails 3: DailyData
и DailyDataVehicle
и Vehicle
, отношения "многие ко многим".
Я только что узнал, что если вы обновите модель с помощью ассоциаций, она не обновит базу данных, поэтому я возвращаюсь и добавляю эти миграции. Мне также посчастливилось уверенно думать, что я знаю разницу между belongs_to
и has_many
, однако в моем файле миграции я не уверен, что t.references
знает.
Поэтому я назвал модель миграции AddDailyDataToDailyDataVehicle
и хочу добавить dailyData_id
в стол daily_data_vehicles
. Это отношение "многие ко многим", поэтому я хочу, чтобы id key
было в таблице отношений DailyDataVehicles
, но я не совсем уверен, что t.references
узнает об этом.
Возможно, я немного путаю ассоциации классов и отношения базы данных. , и если да, то уточните это.
Если t.references
не то, что мне нужно, нужно ли мне вручную объявлять связь с has_many
, и если да, то каков для этого синтаксис?
файл схемы на данный момент:
create_table "daily_data_vehicles", :force => true do |t|
t.integer "vehicle_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "daily_data_vehicles", ["vehicle_id"], :name => "index_daily_data_vehicles_on_vehicle_id"
Миграция (попытка):
class AddDailyDataToDailyDataVehicle < ActiveRecord::Migration
def change
change_table :dailyDataVehicles do |t|
t.references :dailyData
end
add_index :dailyDataVehicles, :dailyData_id
end
end
Как я думаю, должен выглядеть файл схемы, если миграция работает правильно:
create_table "daily_data_vehicles", :force => true do |t|
t.integer "vehicle_id"
t.integer "dailyData_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "daily_data_vehicles", ["vehicle_id"], :name => "index_daily_data_vehicles_on_vehicle_id"
add_index "daily_data_vehicles", ["dailyData_id"], :name => "index_daily_data_vehicles_on_daily_data_id"
с разницей t.integer "dailyData_id"
и add_index "daily_data_vehicles", ["dailyData_id"], :name => "index_daily_data_vehicles_on_daily_data_id"