DeviceState
「アクティブ」、「オフライン」、「オンライン」などの状態を含むモデルがあります。
Device
which belongs_to
toという別のモデルがありDeviceState
ます。
@device.active?
デバイス モデルでやなどのメソッドを使用する@device.offline?
ために、動的メソッドを次のように定義しました。
DeviceState.all.each do |method|
define_method((method.name + "?").to_sym) do
self.device_state.name == method.name
end
end
私の問題は、モデルでテストを作成しようとすると、テスト環境の起動中にモデルがデータベースに取り込まれていないDevice
ため、動的メソッドが作成されないことです。DeviceState
だからファクトリーガールでデータを作ってDeviceState
からでは遅い。
DeviceState
私が試した解決策の 1 つは、 inをシードすることですspec_helper
が、これは最初のテストでは機能しましたが、データベース クリーナーがデータを削除したため、残りのすべてのテストでは機能しませんでした。
これらの動的に定義されたメソッドを克服する最善の方法は何でしょうか?