config/initializers/の下に、データベースからデフォルトの" car " インスタンスの ID をロードする1 つの ruby ファイルがあります。したがって、アプリケーションの起動後、アプリケーションはこのデフォルトの車の ID を直接使用できます。
しかし、最初にこのデフォルトの車をデータベースに挿入する必要があるため、デフォルトの車をデータベースの Cars テーブルに保存するには、レーキ(シード) タスクまたはデータベースの移行が必要です。
紛争がやってくる!rake タスクまたはマイグレーションを実行してインスタンスをデータベースに挿入すると、初期化ファイルは常に実行前に最初に実行されます。つまり、「 config/initializers/ 」の下の ruby ファイルはデフォルトの車のnil id を取得します。まだデータベースに保存されていません。
では、この対立を解消するにはどうすればよいでしょうか。(その初期化ファイルを持つ目的は、デフォルトの車の ID を一度だけロードすることです) デフォルトの車の ID を一度だけロードする他の方法はありますか?
- - - - - - -編集 - - - - -
初期化子の下のコード:
default_car=Car.where({:name => DEFAULT_CAR_NAME})
def default_car_id
return {:default_car_id=>default_car.id}
end