0
我使用內存數據庫進行測試。模式在每次測試中都會重新加載。作用域靜態引用另一個模型生成的表未找到
最近我的rspec抱怨沒有找到表。原因是範圍在加載時引用另一個模型。
class Item
scope :public, where(:store_id => Store.public_store_ids())
class Store
def self.public_store_ids
self.public.pluck(:id)
的問題是,當項目模型在內存中加載的初始化過程中,用於存儲表的模式還沒有被加載,但我的範圍將嘗試查詢公用存儲的ID,這將導致「表未找到」錯誤。
如何讓我的項目範圍在運行時動態評估?我不想使用連接,因爲它會減慢我的查詢速度,但這是否是我唯一的方法?