基本上,我有一個列表模型,其中每個列表都有一個國家ID。我在搜索結果視圖中需要國家/地區名稱。我知道我可以做@listing.country.name
,但是這會爲我的搜索結果中的每個列表執行額外的查詢。我使用的思考獅身人面像,並在我的控制器我有在相同的查詢中加載關聯模型中的數據in rails
@listings = Listing.search(@ts_params).page(page_num).per(limit)
我曾嘗試加入.includes(:countries)
及其變化,但沒有運氣。
這是什麼最好的方法呢?我希望國家數據在與列表相同的查詢中獲取。
我對列表圖像有完全相同的問題 - 它正在爲每個列表執行額外的查詢以查找圖像,當然,它可以在一個連接中完成。
謝謝taavo,目前我有選擇/連接工作,因爲我想少查詢更好? include選項也可以工作,但它會加載大量不必要的數據,因爲每個列表只需要一個「listing_image」結果。也許我可以爲列表創建一個新的關聯 - has_one:main_image,它只是拉一個圖像? – Dave
是的,如果你只需要一個,並且你希望能夠使用activerecord的'includes'(這裏通過':include'觸發)加載它,那麼你將需要一個'has_one'。 – Taavo