Ruby on rails t、 Rails迁移中的引用(n | n关系)
我的Rails 3应用程序中有三种型号,Ruby on rails t、 Rails迁移中的引用(n | n关系),ruby-on-rails,ruby-on-rails-3,relationship,has-many,belongs-to,Ruby On Rails,Ruby On Rails 3,Relationship,Has Many,Belongs To,我的Rails 3应用程序中有三种型号,DailyData和DailyDataVehicle和Vehicle,这是一种多对多关系 我刚刚了解到,如果使用关联更新模型,它不会更新数据库,因此我将返回并添加这些迁移。我也很幸运,自信地认为我知道所属的和有很多之间的区别,但是,在我的迁移文件中,我不确定t.references是否有区别。 因此,我将迁移模型命名为AddDailyDataToDailyDataVehicle,并希望将dailyData\u id添加到dailyData\u vehicl
DailyData
和DailyDataVehicle
和Vehicle
,这是一种多对多关系
我刚刚了解到,如果使用关联更新模型,它不会更新数据库,因此我将返回并添加这些迁移。我也很幸运,自信地认为我知道所属的
和有很多
之间的区别,但是,在我的迁移文件中,我不确定t.references
是否有区别。因此,我将迁移模型命名为
AddDailyDataToDailyDataVehicle
,并希望将dailyData\u id
添加到dailyData\u vehicles
表中。这是一个多对多关系,因此我希望id键
位于关系表DailyDataVehicles
,但我不确定t.references
是否知道这一点。也许我把类关联和数据库关系弄混了,如果我弄混了,请澄清这一点。
如果
t.references
不是我想要的,我是否必须手动声明与has\u 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"
迁移(尝试):
区别在于t.integer“dailyData\u id”
和add\u index“dailyData\u vehicles”[“dailyData\u id”],:name=>“index\u dailyData\u vehicles\u on\u dailyData\u id”
类AddDailyDataToDailyDataVehicle
这就像只有在模式文件中才有t.references才能解决模式方面的问题一样?然后我也要相应地调整模型?
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"
class AddDailyDataToDailyDataVehicle < ActiveRecord::Migration
def change
add_column :daily_data_vehicles, : daily_data_id, :integer
add_index :daily_data_vehicles, :daily_data_id
end
end
class DailyDataVehicle < ActiveRecord::Base
belongs_to :daily_data
end
class DailyData < ActiveRecord::Base
has_many :daily_data_vehicles
end