在config/initializers/下,我有一个 ruby 文件,它将从数据库中加载我的默认“汽车”实例的 ID。所以,在我的应用程序启动后,我的应用程序可以直接使用这个默认的汽车 ID。
但是,我需要首先将此默认汽车插入数据库,因此,我需要一个rake(种子)任务或数据库迁移来将默认汽车存储到数据库 Cars 表中。
冲突来了!如果我运行 rake 任务或迁移以将实例插入数据库,初始化程序文件将始终在运行之前首先运行,这意味着“ config/initializers/ ”下的 ruby 文件将获得默认汽车的nil id,因为默认汽车有尚未存储在数据库中。
那么,如何摆脱这种冲突呢?(拥有该初始化程序文件的目的是仅加载默认汽车 ID ONCE 一次)是否有任何其他方法可以仅加载默认汽车 ID 一次?
- - - - - - -编辑 - - - - -
初始化程序下的代码:
default_car=Car.where({:name => DEFAULT_CAR_NAME})
def default_car_id
return {:default_car_id=>default_car.id}
end